C++ Primer 第十一章 关联容器

关联容器中的元素是按关键字来保存和访问的
顺序容器中的元素是按它们在容器中的位置顺序来保存和访问的
两个主要的关联容器(associative-container)类型是 mapset

  1. map 中的元素是一些关键字-值对(key-value): 关键字起到索引的作用,值表示与索引相关联的的数据
  2. set中每个元素只包含一个关键字

1. 使用关联容器

map 是关键字-值对的集合
map 类型通常被称为关联数组(associate array): 通过一个关键字而不是位置来查找值

set 是关键字的简单集合

1.1.1 使用map

1.1.2 使用set

2. 关联容器概述

2.1 定义关联容器

定义map时,必须指明关键字类型和值类型
定义set时,只需要指明关键字类型

2.1.1 初始化multimap或multiset

允许多个元素具有相同的关键字

创建一个名为ivec的保存int的vector,
包含20个元素:0-9每个整数有两个拷贝。
用这个vector 初始化一个set和multiset

vector <int> ivec;
for(vector<int>::size_type i = 0; i != 10; ++i)
{
	ivec.push_back(i);
	ivec.push_back(i);
}
// iset 包含来自ivec的不重复的元素
// miset 包含所有哦20个元素
set<int> iset(ivec.cbegin(), ivec.cend());
multiset<int> miset(ivec.cbegin(), ivec.cend());
cout << ivec.size() << endl;
cout << iset.size() << endl;
cout << miset.size() << endl;

打印:
20
10
20

2.2 关键字类型的要求

2.2.1 有序容器的关键字类型

2.2.2 使用关键字类型的比较函数

2.3 pair类型

2.3.1 创建pair 对象的函数

3. 关联容器操作

3.1 关联容器迭代器

3.1.1 set 的迭代器是const的

3.1.2 遍历关联容器

3.1.3 关联容器和算法

3.2 添加元素

3.2.1 向map 添加元素

3.2.2 检测 insert 的返回值

3.2.3 展开递增语句

3.2.4 向multiset或multimap添加元素

3.3 删除元素

3.4 map 的下标操作

3.4.1 使用下标操作的返回值

3.5 访问元素

3.5.1 对map使用find代替下标操作

3.5.2 在multimap 或 multiset中查找元素

3.5.3 一种不同的, 面向迭代器的解决办法

3.5.4 equal_range 函数

3.6 一个单词转换的map

3.6.1 单词转换程序

3.6.2 建立转换映射

3.6.3 生成转换文本

4. 无序容器

4.0.1 使用无序容器

4.0.2 管理桶

4.0.3 无序容器对关键字类型的要求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值