标签:queue priority 集合 push 使用 mil erase rar ras
本文主要介绍C++ STL(Standard Template Library, 标准模板库)常用的容器。
包括但不限于vector、stack、queue、deque、list、priority_queue、map、set。
使用方法均以string类型为例,也可以是自定义元素。
1、 vector
vector<string> sVector; // 声明一个string类型的vector容器
size() // 当前存放的元素的个数
capacity() // 容器的容量,size <= capacity
front() // 序列的第一个元素
back() // 序列的最后一个元素
push_back() // 在序列的尾部添加一个元素
insert() // 在指定之前位置插入元素,第一个参数为迭代器,第二个参数为要插入的元素
clear() // 清除所有元素
erase() // 删除一个元素或一个区域的元素
2、 stack
stack<string> sStack; // 声明一个string类型的stack容器
top() // 返回栈顶元素
push() // 压栈
pop() // 出栈
size() // 当前存放的元素个数
empty() // 当前栈是否为空
3、 queue
queue<string> sQueue; // 声明一个string类型的queue容器
front() // 队列的首部元素
back() // 队列的尾部元素
push() // 在队列尾部添加元素
pop() // 删除队列首部元素
size() // 当前存放的元素个数
empty() // 当前队列是否为空
4、 list
list<string> sList; // 声明一个string类型的list容器
push_front() // 在链表首部插入一个元素
push_back() // 在链表尾部插入一个元素
empty() // 当前链表是否为空
clear() // 清除链表中的所有元素
front() // 获取链表首部元素
back() // 获取链表尾部元素
pop_front() // 删除链表首部元素
pop_back() // 删除链表尾部元素
merge() // 合并两个链表:merge(mylist, less<string>())
insert() // 在指定位置之前插入元素
erase() // 删除一个元素或一个区域的元素
5、 priority_queue
priority_queue<string, vector<string>, less<string>> iPqueue; // 声明一个string类型的priority_queue容器
top() // 访问队列顶部元素
empty() // 队列是否为空
size() // 当前存放的元素个数
push() // 插入元素到队列并排序
pop() // 弹出顶部元素
6、 map
map<int, string> imaps; // 声明一个<int, string>的映射容器
clear() // 删除所有元素
empty() // map是否为空
erase() // 删除一个元素
find() // 查找一个元素,没有查到则指向容器的end()
insert() // 插入一个元素
size() // 当前存放元素的个数
关于元素插入的两种方式:
imaps.insert(pair<string, int>(“test”, 1)); // 存在则插入失败
imaps[“test”] = 1; // 存在则覆盖,不存在则插入
7、 set
set<string> sset; // 声明一个string类型的集合容器
s.clear() // 清除所有元素
s.count() // 返回某个值元素的个数
s.empty() // 如果集合为空
s.erase() // 删除集合中的元素
s.find() // 返回一个指向被查找到元素的迭代器
s.insert() // 在集合中插入元素
s.size() // 集合中元素的数目
注意:find() 返回是set<string>::iterator类型;
insert() 返回pair<set<string>::iterator, bool>类型,其中bool类型指明了是否插入成功,iterator指向插入的元素
erase() 返回指向被删除元素的个数,非0即1
标签:queue priority 集合 push 使用 mil erase rar ras
原文地址:https://www.cnblogs.com/tongyishu/p/12589395.html