文章目录
关联容器中的元素是按关键字来保存和访问的
顺序容器中的元素是按它们在容器中的位置顺序来保存和访问的
两个主要的关联容器(associative-container)类型是 map 和 set
- map 中的元素是一些关键字-值对(key-value): 关键字起到索引的作用,值表示与索引相关联的的数据
- 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