关联容器

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>

5.关联容器迭代器begin()  end()

<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


8.map支持下标和对应的at()函数,set不支持下标


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的元素的范围



你可能感兴趣的:(关联容器)