第十章-关联容器----重学C++之《 C++ PRIMER》
1综述
关联容器通过键存储和读取元素,而顺序容器通过元素在容器中的位置顺序存储和访问元素。
关联容器大部分行为与顺序容器相同,但是其独特之处在于支持键的使用。
关联容器类型:map(关联数组,元素通过键来读取),set(只有键),multimap(一个键对应多个值),multiset
容器元素根据键的次序排列。例如 map<string,string> n
那么键值对("abc","abc") 在("abd","abc") 的前面
键类型的唯一约束就是必须支持<操作符。
2pair类型
pair<T1,T2> p1;
pair<T1,T2> p1<v1,v2>;
p1.first,p1.second
make_pair(v1,v2)
3 map类型
map<k,v> var;
(1)map是pair类型的容器,基本单位是pair对象。
(2)添加元素。使用insert成员或者使用下标添加。
使用下标(即键)访问不存在的元素,将导致在map容器中添加一个新的元素。
(3)查找元素
m.count(k) 返回m中k的出现次数
m.find(k)返回K索引的迭代器。
(4)删除元素
m.erase(k)
4 multimap 和multiset
(1)查找元素(以下函数适用于所有关联容器)
find 和count
m.lower_bound(k)返回迭代器,指向键不小于k的第一个元素。
m.upper_bound(k)返回迭代器,指向键大于K的第一个元素。
m.equal_range(k)返回一个迭代器的pair对象,first成员等于m.lower_bound(k),second成员等于m.upper_bound(k)
实际上是返回等于这个键的一个范围