std::queue
时间: 2023-11-14 20:12:33 浏览: 51
std::queue是C++ STL中的一个容器,它是一个先进先出(FIFO)的队列。它的实现基于deque(双端队列),可以在队列的末尾添加元素,从队列的前端删除元素。std::queue提供了一些常用的方法,例如push()用于在队列的末尾添加元素,front()用于返回队列中第一个元素的引用,size()用于返回队列中元素的个数。在使用std::queue之前,需要包含头文件<queue>。下面是一个简单的std::queue的示例代码:
```
#include <iostream>
#include <queue>
using namespace std;
int main() {
std::queue<int> numbers;
numbers.push(1);
numbers.push(2);
numbers.push(3);
std::cout << "queue size: " << numbers.size() << std::endl;
std::cout << "queue number: " << numbers.front() << std::endl;
return 0;
}
```
输出结果为:
```
queue size: 3
queue number: 1
```
相关问题
std::queue和std::vcter
std::queue和std::vector是C++标准库中的两个容器类。它们分别用于不同的目的。
std::queue是一个队列容器,它遵循先进先出(FIFO)的原则。它提供了入队(push)和出队(pop)操作,以及查询队列是否为空(empty)和获取队列大小(size)的方法。队列通常用于实现任务调度、广度优先搜索等算法。
示例代码:
```cpp
#include <queue>
std::queue<int> myQueue;
myQueue.push(1); // 入队
myQueue.push(2);
myQueue.push(3);
while (!myQueue.empty()) {
int frontElement = myQueue.front(); // 获取队首元素
myQueue.pop(); // 出队
// 对队首元素进行处理
}
```
std::vector是一个动态数组容器,它可以动态调整大小,并且支持随机访问。它提供了在尾部添加元素(push_back)、在指定位置插入元素(insert)、获取指定位置元素(at)、获取容器大小(size)等方法。向量通常用于存储和操作一系列数据。
示例代码:
```cpp
#include <vector>
std::vector<int> myVector;
myVector.push_back(1); // 在尾部添加元素
myVector.push_back(2);
myVector.push_back(3);
for (int i = 0; i < myVector.size(); i++) {
int element = myVector.at(i); // 获取指定位置的元素
// 对元素进行处理
}
```
这里只是简单介绍了std::queue和std::vector的基本用法,它们还有更多的功能和方法可供使用。你可以参考C++标准库的文档以了解更多详细信息。
遍历 std::queue
遍历 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 << " ";
}
```
需要注意的是,第二种方法只能访问队列中的元素,而不能修改队列中的元素。如果需要修改队列中的元素,应该使用第一种方法。