遍历 std::queue
时间: 2023-07-08 09:29:30 浏览: 101
遍历 std::queue 可以使用如下两种方法:
1.使用 while 循环和 front() 函数:
```cpp
std::queue<int> myQueue;
// 添加元素到队列中
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
// 遍历队列
while (!myQueue.empty()) {
std::cout << myQueue.front() << " "; // 访问队首元素
myQueue.pop(); // 出队
}
```
2.使用 C++11 的范围 for 循环:
```cpp
std::queue<int> myQueue;
// 添加元素到队列中
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
// 遍历队列
for (auto& element : myQueue) {
std::cout << element << " ";
}
```
需要注意的是,第二种方法只能访问队列中的元素,而不能修改队列中的元素。如果需要修改队列中的元素,应该使用第一种方法。
相关问题
std::vector 和 std::queue
std::vector和std::queue是C++标准库提供的两种常用容器。std::vector是一种动态数组,可以在末尾添加、删除和访问元素。std::queue是一种队列,遵循先进先出(FIFO)的原则,可以在队尾添加元素,在队头删除元素。
引用提供了一个std::vector的示例代码。在该示例中,可以看到如何使用std::vector的push_back()函数在末尾添加元素,使用front()函数获取队列的第一个元素,使用erase()函数删除队列的第一个元素,以及使用迭代器进行正向和反向遍历。
引用提供了使用std::vector时需要使用std命名限定的说明。使用using std::vector来引入std命名域,以便直接使用vector而不必再加上std::前缀。
引用提供了一个示例代码,演示了如何使用insert()函数在std::vector中的第一个位置插入一个数据。
std::queue是一种基于std::deque容器的适配器,使其行为符合队列的特性。std::queue提供了push()函数在队尾添加元素,pop()函数删除队头元素,front()函数获取队头元素,以及empty()函数判断队列是否为空。
总结起来,std::vector适用于需要随机访问和动态调整大小的场景,而std::queue适用于需要遵循FIFO原则的场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [std::vector](https://blog.csdn.net/mayue_web/article/details/86257000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [std::vector的其它操作](https://blog.csdn.net/qq_15204179/article/details/129930182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
c++ 将一个std::queue里的内容拷贝到另一个不为空的std::queue中,最终使两个std::queue里的元素相同
您可以使用循环来遍历原始队列,并将元素逐个推入目标队列中。下面是一个示例代码:
```cpp
#include <iostream>
#include <queue>
int main() {
std::queue<int> sourceQueue;
sourceQueue.push(1);
sourceQueue.push(2);
sourceQueue.push(3);
std::queue<int> destinationQueue;
destinationQueue.push(4);
destinationQueue.push(5);
while (!sourceQueue.empty()) {
destinationQueue.push(sourceQueue.front());
sourceQueue.pop();
}
std::cout << "Destination Queue: ";
while (!destinationQueue.empty()) {
std::cout << destinationQueue.front() << " ";
destinationQueue.pop();
}
return 0;
}
```
在上述代码中,我们首先创建了一个原始队列 `sourceQueue`,并将一些整数元素推入其中。然后,我们创建了一个目标队列 `destinationQueue`,并初始化为一些不同的整数元素。接下来,我们使用循环将原始队列的元素逐个推入目标队列中。最后,我们使用另一个循环打印出目标队列中的元素。
运行上述代码,输出将是:
```
Destination Queue: 4 5 1 2 3
```
这表明两个队列中的元素已经相同了。
阅读全文