C++ map;vector;list;queue;stack;set对比使用 一种容器适配器,它给予程序员一种先入先出(FIFO)的数据结构。
对比一下,方便使用。
map:
一个关联容器,提供一对一数据处理的功能。map内部自建一棵红黑树,具有自动排序功能,map内部数据都是有序的。一般而言,关联式容器是一个平衡二叉树,以便获得良好的搜寻效率。
vector:
相当于一个动态数组,声明时可以不指明元素数量,需要的时候调用push_back()函数添加元素,即时存取效率较高。
list:
数据结构中的双向链表,内存空间是不连续的,通过指针来进行数据的访问,即时存取不是很快但插入删除效率高。
queue:
stack:
一种容器适配器,它给予程序员一种后入先出(LIFO),那种数据被插入,然后再容器末端取出。
set:
关联容器,根据元素值自动排序(默认从小到大),能从一个数据集合中取出元素,set中每个元素值唯一且不能被直接改变。
常用函数:
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count()返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对erase() 删除一个元素
find() 查找一个元素
get_allocator()返回map的配置器insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map元素upper_bound() 返回键值>给定元素的第一个位置
value_comp()返回比较元素value的函数
vector:
push_back 在数组的最后添加一个数据
pop_back 去掉数组的最后一个数据
at 得到编号位置的数据
begin 得到数组头的指针
end 得到数组的最后一个单元+1的指针
front 得到数组头的引用
back 得到数组的最后一个单元的引用
max_size 得到vector最大可以是多大
capacity 当前vector分配的大小
size 当前使用数据的大小
resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
reserve 改变当前vecotr所分配空间的大小
erase 删除指针指向的数据项
clear 清空当前的vector
rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
empty 判断vector是否为空
swap 与另一个vector交换数据
list:
assign()给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素
queue:
back()返回最后一个元素
empty() 如果队列空则返回真
front() 返回第一个元素
pop() 删除第一个元素
push() 在末尾加入一个元素
size() 返回队列中元素的个数
stack:
empty()堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top()返回栈顶元素
set:
begin() 返回set容器的第一个元素
end() 返回set容器的最后一个元素后面的地址(切记不是返回最后一个元素)
clear() 删除set容器中的所有的元素
empty() 判断set容器是否为空
max_size() 返回set容器可能包含的元素最大个数
size() 返回当前set容器中的元素个数
rbegin 返回的值和end()相同
rend() 返回的值和rbegin()相同
#END