笔记:C++学习之旅---关联容器
<iostream>
<string>
<map>
<set>
namespace
std;
main()
map
<
string
,
size_t
> word_count;
string
word;
set
<
string
> exclude = {
"The"
,
"But"
,
"And"
,
"Or"
,
"An"
,
"A"
,
"the"
,
"but"
,
"and"
,
"or"
,
"an"
,
"a"
};
//忽略的单词
"请输入一串英文单词\n"
;
while
(cin >> word)
if
(word ==
"#"
)
break
;
if
(exclude.find(word) == exclude.end())
for
(
const
auto
&w : word_count)
" occurs "
<< w.second << ((w.second > 1) ?
" times "
:
" time "
) << endl;
return
0;
<iostream>
<map>
<string>
<algorithm>
namespace
std;
print(
map
<
string
,
size_t
> &
map
)
for
(
auto
&m : map)
":"
<<m.second<<endl;
word_count_pro(
map
<
string
,
size_t
> &
m
)
string
word;
"请输入一串英文单词\n"
;
while
(cin >> word)
if
(word ==
"#"
)
break
;
for
(
auto
&ch : word)
//大小写转换;
//ispunct 判断是否为标点符号或者特殊字符进行删除;
m
[word];
m
);
main()
map
<
string
,
size_t
> map;
return
0;
<iostream>
<vector>
<map>
<set>
namespace
std;
main()
vector
<
int
> vec;
for
(
vector
<
int
>::
size_type
i = 0; i != 10; ++i)
set
<
int
> iset(vec.cbegin(), vec.cend());
multiset
<
int
> miset(vec.cbegin(), vec.cend());
//20
//10
//20
return
0;
<iostream>
<vector>
<string>
<map>
namespace
std;
print(
multimap
<
string
,
vector
<
string
>> &
family
)
//按照英文名称习惯打印名字,如Tom.Green
for
(
auto
&member : famil
y
)
"Mumber is:"
<<
" "
<< endl;
for
(
auto
it = member.second.begin(); it != member.second.end(); ++it)
"."
<< member.first << endl;
main()
string
fname =
""
, name =
""
;
vector
<
string
> vec = {
"Tom"
,
"Jerry"
,
"Lucy"
};
multimap
<
string
,
vector
<
string
>> family = { {
"Green"
, vec }, {
"white"
, vec } };
//打印结果
//先输入family name,然后自己name
//while (cin >> fname >> name)
//family[fname].push_back(name);
//修改地方,先输入名,再输入姓,可以重复保存了,所以不像上面那样来插入名字
"请输入你的名:\n"
;
while
(cin >> fname)
vector
<
string
> vec;
"请输入你的性(输入end退出):\n"
;
while
(cin >> name && name !=
"end"
)
//以end结束输入
//将姓插入到名前面
//添加新家庭后再次打印
return
0;
<iostream>
<vector>
<map>
<string>
namespace
std;
main()
map
<
string
,
size_t
> word_count;
string
word;
"请输入一串字符串\n"
;
while
(cin >> word)
if
(word ==
"#"
)
break
;
auto
ret = word_count.insert({ word, 1 });//创建一个pair
if
(!ret.second)
for
(
auto
&w : word_count)
" "
<< w.second << ((w.second > 1) ?
" times "
:
" time "
)<<endl;
return
0;
<iostream>
<string>
<map>
<algorithm>
namespace
std;
main()
multimap
<
string
,
string
> authors{ {
"alan"
,
"DMA"
}, {
"pezy"
,
"LeetCode"
}, {
"alan"
,
"CLRS"
},
"wang"
,
"FTP"
}, {
"pezy"
,
"CP5"
}, {
"wang"
,
"CPP-Concurrency"
} };
"erase before:\n"
;
for
(
auto
&a : authors)
":"
<<a.second<< endl;
string
author =
"pezy"
;
string
work =
"CP5"
;
auto
found = authors.find(author);
//找到作者;
auto
count = authors.count(author);
//记录次数;
while
(count)
if
(found->second == work)
//找到CP5,然后删除;
break
;
"erase after:\n"
;
for
(
const
auto
& author : authors)
":"
<< author.second << std::endl;
return
0;
笔记:C++学习之旅---关联容器的更多相关文章
- 【c++ Prime 学习笔记】第11章 关联容器
关联容器的元素按照关键字来保存和访问,而顺序容器的元素是按照在容器中的位置来保存和访问 关联容器支持高效的关键字查找和访问 2种关联容器: map中的元素是关键字-值对(key-value对),关键字 ...
- C++ Primer 读书笔记:第10章 关联容器
第10章 关联容器 引: map set multimap multiset 1.pair类型 pair<string, int> anon anon.first, anon.second ...
- 笔记-JavaWeb学习之旅19
Redis:redis是一款高性能的NOSQL系列的非关系型数据库 NOSQL: Not Only SQL ,意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型数据库 r ...
- 笔记-JavaWeb学习之旅14
JSTL:JavaServer Pages Tag Library JSP标准标签库 if标签 <%@ page import="java.util.ArrayList" % ...
- 笔记-JavaWeb学习之旅11
请求转发:一种在服务器内部的资源跳转方式 使用步骤 1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path) ...
- 笔记-JavaWeb学习之旅8
Window对象-定时器方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 笔记-JavaWeb学习之旅7
JavaScript基础 概念:一门客户端脚本语言,运行在客户端浏览器中,每一个浏览器都有JavaScript的解析引擎,是一个脚本语言,不需要编译,直接就可以被浏览器解析执行. JavaScript ...
- 笔记-JavaWeb学习之旅5
CP30的演示 package cn.itcast.datasourcejdbc; import com.mchange.v2.c3p0.ComboPooledDataSource; import j ...
- 笔记-JavaWeb学习之旅3
数据库的设计 1.多表之间的关系 一对一 一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键 一对多 在多的一方建立外键指向一的一方建立主键 多对多 多对多关系实现需要借助第三张中间表.中间表 ...
- 笔记-JavaWeb学习之旅2
数据库的基本概念 1.数据库:DataBase 简称 DB,用于存储和管理数据的仓库 特点: 1.持久化存储数据的,其实数据库就是一个文件系统, 2.方便存储和管理数据 3.使用了统一操作数据库 -- ...
随机推荐
- Java工程结构 应用分层
(一) 应用分层 1. [推荐]图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于 Web 层,也可以直接依赖于 Service 层,依此类推: • 开放接口层:可直接封装 Se ...
- How to Install VMware Tools on CentOS 6.5
yum install perl gcc make kernel-headers kernel-devel -y [root@centos6 vmware-tools-distrib]# ./vmwa ...
- flask orm 操作方法
数据库操作 常用的查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定的值限 ...
- Python中列表、元组、字典的区别
列表: 列表是一种数据结构,每一个元素对应一个值.例如:list=['a','b','c'] 访问列表数据通过下标的方式来进行数据访问,list[下标] list.append(i) 添加数据 de ...
- STM32 系统初始化
#include "system.h" void system_init(void){ //系统中断设置,抢占优先级0~15,无子优先级 NVIC_PriorityGroupCon ...
- Java-http请求工具-OkHttp用法
前言:一般Java项目后端发送请求都使用http,最近项目里面大佬建议把http都改成okhttp3(OkHttpClient).故今日记录部分常用发送方式. 代码:为了便于以后使用,这里封装一个Ok ...
- maui BlazorWebView+本地html (vue、uniapp等都可以) 接入支付宝sdk 进行支付宝支付 开发 Android app
首先添加支付宝sdk的绑定库 nuget 包:Chi.MauiBinding.Android.AliPay 项目地址:https://github.com/realZhangChi/MauiBindi ...
- 【Visual Leak Detector】在 QT 中使用 VLD(方式三)
说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 目录 说明 1. 使用前的准备 2. 在 QT 中使用 VLD 2.1 复制 lib 库及头文件 2.2 在项目 .pro 文件中指明路 ...
- Condition 接口
系统性学习,移步IT-BLOG Java 对象拥有一组监视方法:wait().wait(long timeout).notify() 以及 notifyAll() 方法,这些方法与 synchroni ...
- GO实现Redis:GO实现内存数据库(3)
实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis datastruct/dict/dict.go type Con ...