vector和map点击链接即可
下文非链接
queue
说明:满足所有有关队列的操作
1、声明:
queue<数据类型> 变量名
例:queue<int> q
2、操作:
入队:q.push(data);
出队:q.pop();
判空:q.empty();
大小:q.size()
队首元素:q.front();
队尾元素:q.back();
3、性质:
- 无法进行排序:因为是队列必须遵守原序
- 多用于广搜BFS操作
4、样例
priority_queue
1、说明:
- 介于queue无法满足排序,所以引入了以堆为数据结构支撑的优先队——priority_queue
- 除排序功能外,以及对于priority_queue只有q.top(),与queue中的q.front()不同其余与queue用法一致
- 默认以降序排,即大根堆
2、排序操作
改写算子
- 升序排序:priority_queue<T,vector<T>,greater<T>>//其中greater称为算子,调用x>y比较方式
- 降序:直接默认,或者priority_queue<T,vector<T>,less<T>>
重载运算符(对于结构体):
- 结构体内:
struct student{
string name,age,gender;
bool operator () (const struct student a) const{
return a.age<age;
}
};
- 结构体外:
-
struct student{ string name,age,gender; }; bool operator < (const struct student a,const struct student b) { return a.age<b.age; }
set
1、说明:
- 集合运算
- 自带升序排序
- 以红黑树作为底层
- 多用于去重
2、操作:
set<数据类型> 变量名
例:set<int> s;
插入:s.insert();
大小:s.size();
删除指定元素k:s.erase(s.find(k));
清空:s.clear();
判空:s.empty();