笔记: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.使用了统一操作数据库 -- ...
随机推荐
- Code UTF-8 Console GB2312 Linux 中文乱码
Linux 系统方法: LD_LIBRARY_PATH=. ./userdemo | iconv -f GB2312 -t utf8 Shell 方法 Shell 编码 改成GB2312 // 编 ...
- Python数据可视化,自适应浏览器
pyecharts生成的html默认是靠左上显示的需要生成的文件居中显示,且能根据浏览器窗口大小自动调整需要修改html当然,如果你是熟悉html,且只是临时少量生成表格的话,每次生成完后手动修改ht ...
- Js:当前日期格式化与比较大小
//日期格式转换 getCurrentTime() { var date = new Date();//当前时间 var year = date.getFullYear() //返回指定日期的年份 v ...
- NXOpen遍历工作部件表达式
//用户代码#include <uf_defs.h>#include <NXOpen/NXException.hxx>#include <NXOpen/Session.h ...
- python去除前中后多处空格的方法
x=" asdf ada都 是 年 费 sdf sf " print("".join(x.split())) 测试全角半角空格都没有了
- Python第十章实验报告
一.实验对象:<零基础学Python>6道实例和2道实战 二.实验环境:IDLE Shell 3.9.7 三.实验目的:学习如何在Python中进行文件和目录的相关操作 四.实验过程: 实 ...
- 【Leetcode】 剑指offer:栈与队列 --Day01
写在前面 2023届秋招形势严峻,作为2024届本科生倍感压力.时间紧迫,需要加快脚步. 计划之一是在未来的36天时间里通关Leetcode的剑指offer系列算法题.这一系列的学习周期为31天,也就 ...
- Linux 截图快捷键 - 搬运
Linux 截图快捷键 转自:linux 截图快捷键 环境 Linux Mint 21.1 1. Prt ScSysRq ---->全屏截图2. Shift+Prt ScSysRq ----& ...
- KVM虚拟机根分区磁盘扩容
CentOS7.6, libvirt 4.5.0 , KVM虚拟机根分区扩容. 在宿主机执行0, 对LVM磁盘进行扩容 0. qemu-img resize 10.0.0.1_node1.qcow2 ...
- Rosetta scoring
参考:https://www.rosettacommons.org/demos/latest/tutorials/scoring/scoring 介绍 Rosetta有一个被称为ref2015的优化能 ...