笔记: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.使用了统一操作数据库 -- ...
随机推荐
- Linux 常用杂项命令
1.查看监听端口的进程名称 lsof -i:[3306] # 3306是端口名称 2.查看PID进程文件的位置 ls -al /proc/51955/exe # 51955是进程PID
- kafka 学习
https://kafka.apache.org/quickstart C:\W_O_R_K\kafka_2.12-2.2.0\kafka_2.12-2.2.0\bin\windows\zookeep ...
- 微信小程序按下去的样式
微信小程序设置 hover-class,实现点击态效果 目前支持 hover-class 属性的组件有三个:view.button.navigator. 不支持 hover-class 属性的组件,同 ...
- vue input有值但还是验证不通过
验证失败原因: 因为input自动把输入的值转换为string类型,导致验证失败. 解决方案: 一. Input中的v-model改为v-model.number: 二.rules里面需要加type: ...
- 第二节 printf语句和C++中的判断结构
第二节 printf语句和C++中的判断结构 1.1printf语句作用 保留几位小数:%.4lf 保留四位小数 %.3lf 保留三位小数, 格式化输出:整数:printf("%5d!&qu ...
- Unity中的3D数学
3D数学(2022.11.25) 三角函数 Unity中会运用到角度制(Deg)和弧度制(Rad)的转换,弧度制是用圆的弧长来衡量角度的大小,π对应180度.这种转换在Unity中对应有两个方法: 角 ...
- iview 中Modal组件点击确定后验证信息不通过则不关闭弹窗方法
<Modal v-model="isTemManageShow" title="管理模板" @on-ok="ok" :loading= ...
- 【Python】Python3环境安装
编译安装 安装依赖 yum install wget gcc make zlib-devel openssl openssl-devel readline-devel wget "https ...
- Winform 使用DotNetBar 设置界面为Office2007 样式
public partial class FrmMain : DevComponents.DotNetBar.Office2007RibbonForm { public FrmMain() { Ini ...
- SpringBoot笔记--自动配置(高级内容)(下集)
案例需求 实现步骤: 具体的实现 1.引入Jedis依赖 2.提供Jedis的Bean 找到SpringBoot的执行文件,按住Ctrl键,进入SpringBootApplication注解,再进入E ...