队列
被催着写就很离谱啊!
简述
队列是一种线性存储结构,有以下特点
1.先进先出的特点
2.每次都是从队尾把数据放入,只可弹出队首元素(双端队列特殊)
头文件:#include<queue>
定义队列:queue<数据类型> q
具体操作代码如下:
queue<int> q;
for(int i = 0;i < 10;i++){
q.push(i);//将元素压入队列
}
int a = q.front();//取队首
int b = q.back();//取队尾
int c = q.size();//取队列规模的大小
cout<<a<<" "<<b<<" "<<c<<endl;
for(int i = 0;i < 5;i++){
cout<<q.front()<<" ";
q.pop();//弹出队首元素
}
cout<<endl;
queue<int> q1;
q1.swap(q);//将q队列的元素给q1队列,之后q队列里就没有数据,即为空
for(int i = 0;i < 5;i++){
cout<<q1.front()<<" ";
q1.pop();//弹出队首元素
}
q.empty();//如果为空返回true,否则返回false
写得比较简单,还是得自己去实践
CF_1579E1题目题解
该题使用双端队列,也可以用两个队列模拟。