洛谷p1160 队列安排stl
时间: 2025-01-20 07:24:49 浏览: 44
### 关于洛谷 P1160 题目使用 STL 进行队列安排的解法
对于洛谷 P1160 的题目,可以利用C++标准模板库(STL)中的`deque`(双端队列)来实现高效的队列入队和出队操作。此数据结构允许在两端快速插入和删除元素。
下面是一个基于 `deque` 容器解决该问题的具体实现方式:
```cpp
#include <iostream>
#include <deque>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
deque<int> queue;
for(int i = 1; i <= n; ++i){
queue.push_back(i); // 初始化队列
}
while(m--) {
string op;
cin >> op;
if(op == "in") {
int num;
cin >> num;
queue.push_front(num);
}
else if(op == "out"){
if(!queue.empty()){
cout << queue.front() << endl;
queue.pop_front();
}else{
cout << "The queue is empty." << endl;
}
}
}
return 0;
}
```
这段代码首先读取两个整数n,m分别表示初始人数以及后续的操作次数;接着初始化一个包含编号为1到n的人组成的双向队列。之后循环处理m次输入指令,“in”代表有人加入队伍头部,“out”则意味着移除并打印当前最前面那个人的信息[^1]。
当执行出入队命令时,通过调用成员函数`push_front()` 和 `pop_front()` 来高效完成相应动作而无需移动其他队员的位置。如果尝试从空队列中取出元素,则应适当提示用户队列为空的情况[^2]。
阅读全文
相关推荐



















