在C++中,std::queue
是一个遵循先进先出(FIFO)原则的容器。由于std::queue
不提供直接访问容器内部元素的方法,因此不能直接遍历。但是,您可以使用一个临时队列来遍历。以下是如何做到这一点的示例代码:
#include <iostream>
#include <queue>
int main() {
std::queue<int> q;
// 添加一些元素到队列
for (int i = 0; i < 5; ++i) {
q.push(i);
}
// 使用临时队列遍历
std::queue<int> temp(q); // 复制原队列到临时队列
while (!temp.empty()) {
std::cout << temp.front() << " ";
temp.pop(); // 弹出元素以遍历下一个元素
}
std::cout << std::endl;
return 0;
}
这段代码会输出
0 1 2 3 4
请注意,这种方法会复制队列中的所有元素,如果队列很大,这可能不是最佳选择。如果需要频繁遍历队列,可以考虑使用std::deque
作为底层容器,然后使用std::queue
进行封装,这样可以保持队列的FIFO特性,同时提供遍历能力。
或者采用这种办法:
#include<iostream>
#include<queue>
using namespace std;
int main(int argc, char* argv[]) {
queue<int> myqueue;
myqueue.push(1);
myqueue.push(2);
myqueue.push(3);
int myqueue_size = myqueue.size();
for(int i = 0; i < myqueue_size; i++) { //myqueue_size 必须是固定值
cout << myqueue.front() << endl;
myqueue.push(myqueue.front());
myqueue.pop();
}
}
标签:std,遍历,队列,C++,queue,int,myqueue From: https://www.cnblogs.com/FBsharl/p/18122428