C++中vector,stack,queue,deque,priority_queue的基本操作
程序员文章站
2022-03-22 22:16:46
...
主要是记录上述的基本操作,以防忘记,可以随时查阅
vector
基本操作
-
vector<Type> M
定义一个vector的变量 -
M.push_back(a)
尾部插入数字 -
M.insert(vec.begin() + i, a)
插入元素: 在第i+1个元素前面插入a -
M.erase(vec.begin() + 2)
删除元素 删除第三个元素 -
M.erase(vec.begin() + i, vec.begin() + j)
删除区间 -
M[0]
使用下标访问元素: 下标从0开始 -
M.size()
向量大小: -
M.clear()
清空
stack
基本操作
-
stack<Type> M
定义一个stack的变量 -
M.push()
在栈顶增加元素 -
M.pop()
移除栈顶元素 -
M.top()
返回栈顶元素 -
M.size()
返回栈中元素数目 -
M.empty()
堆栈为空则返回真
queue
-
queue<Type> M
定义一个queue的变量 -
M.push()
从已有元素后面增加元素 -
M.pop()
清除第一个元素 -
M.front()
显示第一个元素 -
M.back()
显示最后一个元素 -
M.size()
输出现有元素的个数 -
M.empty()
查看是否为空范例 是的话返回1,不是返回0;
deque
基本操作
-
deque<Type> M
定义一个deque的变量 -
M[ ]
:用来访问双向队列中单个的元素。 -
M.front()
:返回第一个元素的引用。 -
M.back()
:返回最后一个元素的引用。 -
M.push_front(x)
:把元素x插入到双向队列的头部。 -
M.pop_front()
:弹出双向队列的第一个元素。 -
M.push_back(x)
:把元素x插入到双向队列的尾部。 -
M.pop_back()
:弹出双向队列的最后一个元素。 -
M.size()
输出现有元素的个数 -
M.empty()
查看是否为空范例 是的话返回1,不是返回0;
priority_queue
-
priority_queue<int> M
定义一个优先级队列的变量(默认大根堆) -
M.push(x)
:把元素x插入到大根堆中 -
M.pop()
:弹出大根堆的堆顶元素 -
M.top()
返回大根堆元素 -
M.size()
:弹出大根堆的元素个数 -
M.empty()
:是否为空 -
priority_queue<int, vector<int>, greater<int> > p
小根堆
priority_queue<Type, Container, Functional>
//Type为数据类型, Container为保存数据的容器,Functional为元素比较方式。
//如果不写后两个参数,那么容器默认用的是vector,比较方式默认用operator<,也就是优先队列是大顶堆,队头元素最大。
struct Node{
int x,y;
Node(int a=0, int b=0):
x(a), y(b) {}
};
struct cmp{
bool operator()(Node a, Node b){
if(a.x == b.x) return a.y>b.y;
return a.x>b.x;
}
};
priority_queue<Node, vector<Node>, cmp>p;
上一篇: C++ vector使用总结