C++ map;vector;list;queue;stack;set对比使用

对比一下,方便使用。

map:

一个关联容器,提供一对一数据处理的功能。map内部自建一棵红黑树,具有自动排序功能,map内部数据都是有序的。一般而言,关联式容器是一个平衡二叉树,以便获得良好的搜寻效率。


vector:

相当于一个动态数组,声明时可以不指明元素数量,需要的时候调用push_back()函数添加元素,即时存取效率较高。


list:

数据结构中的双向链表,内存空间是不连续的,通过指针来进行数据的访问,即时存取不是很快但插入删除效率高。


queue:

一种容器适配器,它给予程序员一种先入先出(FIFO)的数据结构。


stack:

一种容器适配器,它给予程序员一种后入先出(LIFO),那种数据被插入,然后再容器末端取出。


set:

关联容器,根据元素值自动排序(默认从小到大),能从一个数据集合中取出元素,set中每个元素值唯一且不能被直接改变。


常用函数:


map:

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


原文地址:https://www.cnblogs.com/yunet/p/12584111.html