std::queue 的 push
时间: 2023-07-08 21:18:22 浏览: 46
std::queue是STL中的一个容器适配器,它是基于其他STL容器实现的队列。std::queue的push()函数用于向队列尾部添加一个元素,其函数原型如下:
```
void push(const value_type& val);
```
其中,value_type是队列中元素的数据类型,val是要添加的元素。push()函数将元素val添加到队列的尾部,使其成为最后一个元素。
另外,std::queue还提供了一个重载的push()函数,可以一次性添加多个元素,函数原型如下:
```
template <class... Args>
void emplace(Args&&... args);
```
其中,Args是可变模板参数,args是要添加的元素。emplace()函数将元素args添加到队列的尾部,使其成为最后一个元素。与push()函数不同的是,emplace()函数是使用元素的构造函数在队列尾部直接构造元素,而不是先创建一个元素对象再将其添加到队列尾部。这样可以避免拷贝或移动元素的操作,提高了效率。
相关问题
std::queue
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::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 << " ";
}
```
需要注意的是,第二种方法只能访问队列中的元素,而不能修改队列中的元素。如果需要修改队列中的元素,应该使用第一种方法。