关联容器

来源:互联网 发布:js 在线预览word文档 编辑:程序博客网 时间:2024/04/29 07:35

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



0 0
原创粉丝点击