1.关联容器:
map关键字-值对,经常被称为关联数组
set中每个元素只有一个关键字,即只保存关键字的容器
①允许重复的关键字的容器名字都包含multi。
②不保持关键字顺序存储的容器的名字都以但粗unordered开头。
③无序容器以哈希函数来组织元素。
④关联容器的迭代器都是双向的。
map   set    multimap    multiset    / 无序集合   unordered_map  unordered_set     unordered_multimap    unordered_multiset.

2.使用map:map <string,size_t>word_count;
①指定关键字和值的类型
②map所使用的pair用first成员保存关键字,用second成员保存对应的值
使用set:set<string> exclude = {"the","but"};
exclude.find(word)返回一个迭代器,如果关键字在set中,迭代器指向该关键字,否则返回尾后迭代器。

3.map中的元素的pair类型的,这种类型定义在头文件utility中。
pairde的数据成员是public的。

4.关联容器额外的类型别名:
key_type:此容器类型的关键字类型
mapped_type:每个关键字关联的类型;只适用于map
value_type:对于set与key_type相同
对于map,为pair<const key_type,mapped_type>
map和set关键字是const的

5.当使用一个迭代器历遍一个map,multimap,set,multiset时,迭代器按关键字升序历遍元素。

6.向map和和向multimap,multiset添加元素的区别:
①前者只能添加不存在的元素。
②前者返回pair<std:map::value_type,bool>,后者返回指向新元素的迭代器。

7.set和multimap,unordered multimap不支持小标运算符。
对于map来说,如果使用一个不在容器中的关键字作为下标,会添加一个具有此关键字的元素到map中。但是如果使用at函数,若关键字不存在,抛出一个out_of_range异常。
①对map进行下标操作时,会获得一个mapped_type对象,但当解引用一个map迭代器时,会得到一个value_type对象。
②下标和at操作只适用于非const的map和unordered_map

8.
c.lower_bound(k)返回一个迭代器,指向第一个关键字不小于k的元素(指向第一个具有给定关键字的元素)
c.upper_bound(k)返回一个迭代器,指向第一个关键字大于k的元素(指向最后一个匹配给定关键字的元素之后的位置)--如果lower_bound(k)和upper_bound(k)返回相同迭代器,则说明不存在这个关键字。
c.equal_range(k)返回一个迭代器pair,表示关键字等于k的元素的范围,若k不存在,pair的两个成员均等于c.end();


9.getline不会跳过前导空格。


Chapter11(关联容器)--C++Prime笔记的更多相关文章

  1. 【c++ Prime 学习笔记】第11章 关联容器

    关联容器的元素按照关键字来保存和访问,而顺序容器的元素是按照在容器中的位置来保存和访问 关联容器支持高效的关键字查找和访问 2种关联容器: map中的元素是关键字-值对(key-value对),关键字 ...

  2. Chapter11:关联容器

    当用decltype来获得一个函数指针类型时,必须加上一个*来指出我们要使用一个给定函数类型的指针.decltype<CompareIsbn>*. map<string, int&g ...

  3. 高放的c++学习笔记之关联容器

    标准库提供8个关联容器 按关键字有序保存有(红黑树实现) set map multset 关键字可重复出现的set multimap  关键字可重复出现的map 无序保存 哈希实现 unorderre ...

  4. C++ Primer 读书笔记:第10章 关联容器

    第10章 关联容器 引: map set multimap multiset 1.pair类型 pair<string, int> anon anon.first, anon.second ...

  5. C++ Primer笔记7_STL之关联容器

    关联容器 与顺序容器不同,关联容器的元素是按keyword来訪问和保存的.而顺序容器中的元素是按他们在容器中的位置来顺序保存的. 关联容器最常见的是map.set.multimap.multiset ...

  6. C++ Primer 笔记——关联容器

    1.关联容器支持高效的关键字查找和访问,标准库提供8个关联容器. 2.如果一个类型定义了“行为正常”的 < 运算符,则它可以用作关键字类型. 3.为了使用自己定义的类型,在定义multiset时 ...

  7. C++学习笔记54:关联容器,函数对象

    关联容器的特点 1.每个关联容器都有一个键(key) 2.可以根据键高效查找元素 集合set 集合用来存储一组无重复的元素,由于集合的元素本身是有序的,可以高效地查找元素,也可以方便地指定大小范围的元 ...

  8. Chapter9(顺序容器) --C++Prime笔记

    PS:删除元素的成员函数并不检查其参数.在删除元素之前,程序员必须确保它们是存在的. 1.迭代器的范围是[begin,end)左闭右开. 2.对构成迭代器的要求: ①它们指向同一个容器中的元素或者容器 ...

  9. C++ Primer 学习笔记_34_STL实践与分析(8) --引言、pair类型、关联容器

    STL实践与分析 --引言.pair类型.关联容器 引言:     关联容器与顺序容器的本质差别在于:关联容器通过键[key]来存储和读取元素,而顺序容器则通过元素在容器中的位置顺序的存取元素. ma ...

随机推荐

  1. hwconfig命令详解

    基础命令学习目录首页 转载自系统技术非业余研究 本文链接地址: hwconfig查看硬件信息 最近经常要测试新硬件,了解硬件的具体型号和参数就非常重要,过去经常透过lspci, dmidecode, ...

  2. ipmitool命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/EricDing/p/8995263.html [root@localhost ~]# yum install -y i ...

  3. host命令详解

    基础命令学习目录首页 原文链接:https://blog.csdn.net/xin_y/article/details/53924763 分析域名查询工具,测试域名系统工作是否正常 语法: host ...

  4. Beta阶段中间产物【欢迎来怼】

    一.版本控制 ①Git地址:https://git.coding.net/tianjiping/Android-tianjiping.git ②check in次数:7次. ③成员代码贡献 因为阚博文 ...

  5. spring boot之配置跨域

    在启动类中配置 @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override p ...

  6. BugPhobia开发篇章:Alaph阶段Scurm Meeting

    [github]   https://github.com/bugphobia/XuebaOnline 0x01 :目录与摘要 If you weeped for the missing sunset ...

  7. 提交内容到版本库:git commit

  8. Mininet安装,简单实现一个网络拓扑结构

    安装mininet Mininet安装教程,可以按照这个来,然而这个虚拟机有时会很难装.可以考虑如下的做法:先 git clone,cd mininet 和 cat INSTALL之后,可以在提示信息 ...

  9. lintcode-514-栅栏染色

    514-栅栏染色 我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染. 必须保证不存在超过2个相邻的柱子颜色相同,求有多少种染色方案. 注意事项 n和k都是非负整数 样例 n = 3, ...

  10. nginx负载均衡和tomcat热部署简单了解

    简单说下几个名词 nginx     它是一个反向代理,实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的 ...