读书笔记《C++ Primer》第五版——第十一章 关联容器
来源:互联网 发布:淘宝店铺企业认证 编辑:程序博客网 时间:2024/06/12 14:25
定义关联容器
- 初始化为另外一个同类型的拷贝
- C++11允许我们对关联容器值初始化,如
map<string, string> m = { {"1", "2"}, {"3", "4"} }
有序容器的关键字类型
- 必须满足严格弱序,可提供一个函数指针来代替运算符<,如
set<Sales_data, decltype(compareIsbn)*> bookstore(compareIsbn)
- map的元素pair操作有:
pair<T1, T2> ppair<T1, T2> p(v1, v2)pair<T1, T2> p = {v1, v2}make_pair(v1, v2)
关联容器类型别名
- key_type
- map_type map类型才有
- value_type 对于set,等价于key_type;对于map,为
pair<const key_type, mapped_type>
- set的迭代器和map的迭代器的first都是const,无法修改
- 关联容器一般不适用泛型算法
关联容器的元素插入
- c.insert(v) c.emplace(args) 返回一个pair
- c.insert(b, e) c.insert(il) 返回void
- c.insert(p, v) c.emplace(p, args) p为提示,返回一个pair
注意:返回的pair->first为指向新增元素的迭代器;pair->second为bool值,表示是否插入或已经存在
map元素的下标操作
- c[k] 返回关键字为k的元素;若不存在,添加关键字为k的元素,并进行值初始化
- c.at(k) 返回关键字为k的元素;若不存在则抛出out_of_range的异常
查找操作
- c.find(k) 返回迭代器,执行第一个关键字为k的元素;不存在则返回尾后迭代器
- c.count(k) 返回关键字等于k的元素的数量
- c.lower_bound(k) 返回第一个关键字不小于k的元素
- c.upper_bound(k) 返回第一个关键字大于k的元素
- c.equal_range(k) 返回一个pair,first=c.lower_bound(k), second=c.upper_bound(k)
无序容器
无序容器必须提供hash模板,标准库为内置类型、string、智能指针定义了hash,可提供函数来完成无序容器的构造,如:
unordered_multiset<Sales_data, decltype(hasher)*, decltype(eqOp)*> bookStore(42, haser, eqOp)
阅读全文
0 0
- 读书笔记《C++ Primer》第五版——第十一章 关联容器
- C++primer第五版笔记-第十一章关联容器
- 实验测试1《C++ Primer》第五版——第十一章 关联容器
- c++ primer(第五版)笔记 第十一章 关联容器
- 《C++primer(第五版)》学习之路-第十一章:关联容器
- c++primer(第五版) 第十一章 关联容器习题答案
- 《C++Primer》读书笔记——第11章 关联容器
- 《C++ Primer》读书笔记第十一章-1-关联容器概述
- 《C++ Primer》读书笔记第十一章-2-关联容器操作
- 菜狗的C++ primer读书笔记:第十一章 关联容器
- c++primer第十一章关联容器小结-11
- c++primer第五版第十一章练习
- c++ primer(第五版)学习笔记及习题答案代码版(第十一章)关联容器
- 记录——《C Primer Plus (第五版)》第七章编程练习第十一题
- 记录——《C Primer Plus (第五版)》第十章编程练习第十一题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第一题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第二题
- 记录——《C Primer Plus (第五版)》第十一章编程练习第三题
- Android网络框架
- 简述ByteBuffer的使用
- Centos7下将FTP用户锁定在指定目录的解决办法
- struts2配置文件的加载顺序(三)
- 继承与多态
- 读书笔记《C++ Primer》第五版——第十一章 关联容器
- vmware安装centos7 输入ifconfig出现ens33,没有eth0
- kotlin的三目运算
- jQuery学习之二---jq核心
- ubuntu16.04安装python的sklearn模块
- 入职三个月后的一点感想
- java垃圾回收
- mysql5.7导出数据提示--secure-file-priv选项问题的解决方法
- 实验测试1《C++ Primer》第五版——第十一章 关联容器