容器(container)

容器的通用功能:

-- 用默认构造函数构造空容器

-- 支持关系运算符: ==, !=, <, >, <=, >=

-- begin(), end(): 获得容器首,尾迭代器

-- clear(): 将容器清空

-- empty(): 判断容器是否为空

-- size(): 得到容器元素个数

-- s1.swap(s2): 将s1 和s2 两容器内容交换

相关数据类型:

-- S::iterator: 指向容器元素的迭代器类型

-- S::const_iterator: 常迭代器类型

顺序容器:

STL中的顺序容器: 向量(vector)双端队列(deque)列表(list)单向链表(forward_list)数组(array)

顺序容器的接口(不包含单向链表(forward_list)和数组(array)):

--构造函数

--赋值函数    assign

--插入函数    insert, push_front(list, deque), oush_back, emplace, emplace_front

--删除函数    erase, clear, pop_front (list, deque), pop_back, emplace_back

--首尾元素的直接访问    front, back

--改变大小    resize

顺序容器的比较:

——如果需要执行大量的随机访问操作,而且当扩展容器时只需要想容器尾部加入新的元素,就应当选择向量容器vector

——如果需要少量的随机访问操作,需要在容器两端插入或删除元素,则应当选择双端队列容器deque

——如果不需要对容器进行随机访问,但是需要在中间位置插入或者删除元素,就应当选择列表容器list或forward_list

——如果需要数组,array相对于内置数组类型而言,是一种更安全,更容易使用的数组类型

关联容器的分类和基本功能

-- 单重关联容器(set和map):键值是唯一的,一个键值只能对应一个元素

-- 多重关联容器(multiset 和 multimap): 键值是不唯一的,一个键值可以对应多个元素

-- 简单关联容器(set 和 multiset): 容器只有一个类型参数,例如set<K>, multiset<K>, 表示键类型

                                                            容器的元素就是键本身

-- 二元关联容器(map 和 multimap): 容器有两个类型参数,例如map<K,V>, multimap<K,V>, 分别表示键和附加数据的类型

                                                                 容器的元素类型是pair<K,V>, 即由键类型和元素类型复合而成的二元组

猜你喜欢

转载自blog.csdn.net/weixin_42380877/article/details/81171053