1 概述:关联容器不支持顺序容器的位置相关,例如push_front,push_back(),也不支持构造函数或插入这些接受一个元素值和一个数量值得操作;关键字必须定义元素比较方法(<)
<strong>2定义</strong> map<string size_t>word_count set<string.exclude={"xxx","ddd"} map<string,string> authors={{"xxx","xxx"},{"eee","ggg"}}
<pre name="code" class="cpp"><span style="font-family: Arial, Helvetica, sans-serif;"><strong>3 pair类型</strong></span>pair<T1,T2>p T1,T2成员进行值初始化pair<T1,T2>p(v1,v2) first,second分别用v1,v2初始化pair<T1,T2>p={v1,v2}make_pair(v1,v2) 返回一个pairp.firstp.second
<strong>4关联容器类型别名</strong> key_type 关键字类型 mapped_type 与关键字对应的值的类型 value_type 元素类型,对于set,与key_type相同,对于map,为pair<const key_type,mapped_type>
<strong>6.添加元素</strong> c.insert(v) c.emplace(args)对于map set,只有当元素的关键字不存在c中时才插入。函数返回一个pair<bool,指向插入元素的迭代器>,对于multimap,multiset仅返回新插入元素的迭代器 c.insert(b,c) c.insert(il) 返回空 c.insert(p,v) 返回迭代器指向新插入的元素 c.emplace(p,args)
7删除元素 c.erase(k)删除关键字为k返回删除元素的数量 c.erase(p)删除p指向的元素,返回p之后元素的迭代器 c.erase(b,e)返回e
9.访问元素 c.find(k) 返回第一个关键字为k的迭代器 c.count(k)返回关键字为k的元素的个数 c.lower_bound(k) 返回第一个关键字为k的元素的迭代器 c.upper_bound(k) 返回最后一个关键字为k的元素的后一个元素的迭代器 c.equal_range(k) 返回一个pair,指示关键字为k的元素的范围