笔记: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.使用了统一操作数据库 -- ...
随机推荐
- FHAdmin实战获取shell
又是一个愉快的摸鱼的一天,闲来无事去逛先知社区突然看到了一篇名为shrio权限实战绕过的文章(https://xz.aliyun.com/t/8311),这时不禁突然 回想起来之前看到过的一个微信公众 ...
- ctype.h系列的字符函数
C有一系列专门处理字符的函数,ctype.h头文件包含了这些函数的原型.这些函数接受一个字符作为参数,如果该字符属于某特殊的类别,就返回一个非零值(真):否则返回0(假).这个头文件在判断特定字符类型 ...
- Java定时器Timer和TimerTask
方式一:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date date) public static void main(String[] arg ...
- xlsx合并单元格简单介绍
在使用xlsx导出excel表格的时候,有时候我们需要将某些表格进行合并,该如何做呢,代码如下: import XLSX from 'xlsx'; // ... // xlsxData 是 Excel ...
- win10开启休眠
powercfg /hibernate on 管理员模式下的命令提示符
- windows 安装mysql57
1. 配置my.ini文件 在根目录下新建 "my.ini" 文件: 添加配置: [mysql] # 设置mysql客户端默认字符集 default-character-set=u ...
- 《MySQL是怎样运行的》第一章小结
- pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理)
pugixml XML格式处理库的介绍和使用(面向业务编程-格式处理) 介绍 pugixml是一个轻量级的C++ XML处理库.它的特点: 类似dom的界面,具有丰富的遍历/修改功能 非常快速的非验证 ...
- JavaWeb学习笔记第三弹
一.数据库设计 1.软件研发步骤 2.数据库设计概念 建立数据库中的表结构以及表与表之间的关联关系的过程 3.数据库设计的步骤 表关系:一对一.一对多(多对一).多对多 表关系之一对多 表关系之多对多 ...
- Java多线程开发CompletableFuture的应用
做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,咋对谁 ...