《Essential C++》笔记之关联容器set的使用总结
set由一群key组合而成。如果我们想知道某值是否存在于某个集合内,就可以使用set。例如,在graph traversal(图形遍历)算法中,我们可以使用set储存每个遍历过的节点(node)。在移至下一节点前,我们可以先查询set,判断该节点是否已经遍历过。
首先推荐一篇特别棒的博文:c++中set的用法
以前一节的字数统计程序为例,它可能不想统计一般中性词汇的出现次数。为实现此目的,我们定义一个用来记录“排除字眼”的set,元素类型为string,注:下例代码修改自上篇博文《Essential C++》笔记之关联容器map的使用总结-例1
//小问学编程
//编写一个能对文章内每个字眼的出现次数加以分析的程序
//以前一节的字数统计程序为例,它可能不想统计一般中性词汇
//的出现次数。为实现此目的,我们定义一个用来记录“排除字眼”
//的set,元素类型为string
#include<iostream>
#include<map>
#include<string>
#include<set>using namespace std;int main()
{map<string,int> words;map<string,int>::iterator it;set<string>word_exclusion;word_exclusion.insert("is");string tword;while(cin>>tword)//输入的keyif(tword!="q"){if(word_exclusion.count(tword))//如果tword涵盖于“排除字集”内,//就跳过此次迭代的剩余部分。continue;//OK:一旦抵达此处,表示tword并不属于“排除字集”。words[tword]++;//增加的是value}elsebreak;for(it=words.begin();it!=words.end();it++){cout<<it->first<<" 出现次数为: "<<it->second<<endl;}//方法一利用map的find()函数查询int count_1=0;it=words.find("is");if(it!=words.end())count_1=it->second;cout<<"利用map的find(),存在key为is的value为: "<<count_1<<endl;//方法二利用map的count()函数查询int count_2=0;string search_word("boy");if(words.count(search_word))//ok,它存在count_2=words[search_word];//把key对应的value赋给了count_2cout<<"利用map的count(),存在key为boy的value为: "<<count_2<<endl;
}
运行结果:
注意本例以下几处:
注:set元素是默认按照key值排序(sorted)的
——《Essential C++》中文版 Page 92
《Essential C++》笔记之关联容器set的使用总结相关推荐
- 《Essential C++》笔记之关联容器map的使用总结
map被定义为一对(pair)数值,其中的key通常是个字符串,扮演索引的角色,另一个数值是value. 字典便是map的一个不错实例.如果要编写一个能对文章内每个字眼的出现次数加以分析的程序, ...
- C++primer笔记之关联容器
在这一章中,有以下的几点收获: 1.pair类型的使用相当频繁,如果需要定义多个相同的pair类型对象,可考虑利用typedef简化其声明: typedef pair<string, strin ...
- 《C++ Primer 第5版》-11.1使用关联容器-康奈尔笔记
引入:2018年10月看<C++ Primer 第5版>而写的简单笔记 使用关联容器 使用map 使用set Map set 关联容器 Map头文件 Set头文件 Multimap头文件 ...
- QT学习笔记(八):顺序容器和关联容器
QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...
- 《C++ Primer 第5版》-11.2关联容器概述-康奈尔笔记
引入:2018年10月看<C++ Primer 第5版>而写的简单笔记 11.2.1定义关联容器 关联容器概述 定义关联容器 初始化multimap或multiset map<str ...
- C++ Primer 5th笔记(chap 11)关联容器---无序容器
无序关联容器 unordered associative container •unordered_map •unordered_set •unordered_multimap •unordered_ ...
- C++ Primer 5th笔记(chap 11)关联容器
•map •multimap •set •multiset •set •unordered_map •unordered_set •unordered_multimap •unordered_mult ...
- 《C++ Primer 5th》笔记(11 / 19):关联容器
文章目录 使用关联容器 使用map 使用set 关联容器概述 定义关联容器 初始化multimap 或 multiset 关键字类型的要求 有序容器的关键字类型 使用关键字类型的比较函数 pair类型 ...
- C++|STL学习笔记-对STL中关联容器map的进一步认识
关联容器map key + value 的值 关联容器 = 有序容器(红黑树) + 无序容器(散列表) + hash_map 有序容器中: map的键值是不允许重复的 multimap的键值是允许重复 ...
最新文章
- 复利计算5.0——结对(总结)
- mysql使用 CONCAT(字段,字段) 函数拼接
- Caffe源码解析1:Blob
- 链表 队列 基本概念 为什么使用二叉查找树 抽象数据类型
- centos7 下 的lamp 的安装原创详细教程
- 中山大学2018年数学分析高等代数考研试题
- Python遍历文件夹获取文件名并写入excel
- POJ1917 UVA10361 Automatic Poetry【文本】
- 对数线性模型:逻辑斯谛回归和最大熵模型
- PDF资源:Windows程序设计、Python3网络爬虫开发实战
- 【AI模型部署】maskrcnn在tfserver部署以及调用时遇到问题:Servable not found for request “xx”、‘incompatible_shape_error‘
- 机械革命计算机配置,机械革命笔记本Bios设置方法
- 黑客专用文本编辑器Emacs中文手册
- 实对称矩阵的一些性质(不包含证明)
- base64上传文件,后端接受处理(四)
- 业务应用数据库压力过大解决方案
- 合肥辰工科技有限公司
- python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序
- ViT强势应用 | V2X基于ViT提出了一个具有V2X通信的强大协作感知框架
- SpringBoot下Redis切换db
热门文章
- AndroidUtilCode框架 fileutils学习总结
- 一个java程序_从另一个java程序运行java程序
- 【MySQL】添加多个字段
- char类型输出地址
- a href='NewsShow.aspx?id=%#Eval(id) %' class=red%#Eval(title) %/a页面传值
- 关于“绑定(binding)”技术
- 计算机网络的维护 维修方法,网络故障怎么解决 网络维修常见网络故障维修方法【详细介绍】...
- mysql 40014无效,Oracle问题-ORA-14400:插入的分区关键字未映射到任何分区
- 十大经典排序算法2(Python版本)
- 电脑f2还原系统步骤_详解电脑重装系统步骤