队列是一种以先进先出 (FIFO) 类型的排列方式运行的容器。元素在队列的后端插入,从队列的前端删除。为此,分别使用成员函数queue::push()和queue::pop()。
在本文中,我们将讨论这些 queue::pop() 和 queue()::push() 函数。
queue::push() 在 C++ 中
push()队列容器的函数用于将元素插入队列的末尾。这是一个内置函数C++标准模板库(STL)。该函数属于<queue>头文件。该元素被添加到队列容器中,并且队列的大小增加 1。
用法
queue_name.push(value)
参数
- 要插入的元素的值作为参数传递。
结果
- 添加一个与队列末尾传递的参数值相同的元素。
例子
Input : myqueue myqueue.push(6); Output : 6 Input : myqueue myqueue.push(0); myqueue.push(1); Output : 0, 1
错误和异常
- 如果传递的值与队列类型不匹配,则显示错误。
- 如果参数不抛出任何异常,则显示不抛出异常保证。
queue::push( 的示例)
CPP
// CPP program to illustrate
// Application of push() and pop() function
#include <iostream>
#include <queue>
using namespace std;
int main()
{
// Empty Queue
int c = 0;
queue<int> myqueue;
myqueue.push(5);
myqueue.push(13);
myqueue.push(0);
myqueue.push(9);
myqueue.push(4);
// queue becomes 5, 13, 0, 9, 4
// Counting number of elements in queue
while (!myqueue.empty()) {
myqueue.pop();
c++;
}
cout << c;
}
0 1 2
时间复杂度:O(1)(队列pop()操作需要恒定的时间复杂度。)
Note: Here, output is printed on the basis of FIFO property.
queue::pop() 在 C++ 中
队列容器的pop()函数用于从队列的前面删除一个元素(队列中最旧的元素)。这是 C++ 标准模板库 (STL) 的内置函数。该函数属于<queue>头文件。该元素从队列容器中删除,队列大小减 1。
用法
queue_name.pop()
参数
- 没有传递参数
结果
- 删除队列中最旧的元素或本质上是最前面的元素。
例子:
Input : myqueue = 1, 2, 3 myqueue.pop(); Output : 2, 3 Input : myqueue = 3, 2, 1 myqueue.pop(); Output : 2, 1
错误和异常
- 如果传递参数则显示错误。
- 如果参数不抛出任何异常,则显示不抛出异常保证。
queue::pop( 的示例)
CPP
2
时间复杂度:O(1)(队列pop()操作需要恒定的时间复杂度。)
Note: Here, output is printed on the basis of FIFO property.
push()和pop()的应用在 C++ 中
给定多个整数,将它们添加到队列中,并在不使用 size 函数的情况下查找队列的大小。
Input : 5, 13, 0, 9, 4 Output: 5
算法
- 将给定的元素一一推入队列容器。
- 继续弹出队列的元素,直到队列变空,并递增计数器变量。
- 打印计数器变量。
示例
CPP
// CPP program to illustrate
// Application of push() and pop() function
#include <iostream>
#include <queue>
using namespace std;
int main()
{
// Empty Queue
int c = 0;
queue<int> myqueue;
myqueue.push(5);
myqueue.push(13);
myqueue.push(0);
myqueue.push(9);
myqueue.push(4);
// queue becomes 5, 13, 0, 9, 4
// Counting number of elements in queue
while (!myqueue.empty()) {
myqueue.pop();
c++;
}
cout << c;
}
5
时间复杂度:O(n) //n 是队列的大小。
辅助空间:O(1)
C++中队列push()和队列pop()之间的区别
下表列出了 queue::push() 和 queue::pop() 之间的区别:
S. 编号 |
队列push() |
queue pop() |
---|---|---|
1. |
它用于在队列末尾插入一个新元素。 | 它用于删除队列中的下一个元素 |
2. |
它的语法是-: 推(value_type&& val); |
它的语法是-: pop(); |
3. |
它需要一个参数,即要插入的值。 | 它不带任何参数。 |
4. |
它的返回类型是void。 | 它的返回类型是void。 |
5. |
它存在于<queue>头文件。 | 它存在于<queue>头文件。 |
相关用法
- C++ queue front()用法及代码示例
- C++ queue::swap()用法及代码示例
- C++ queue::empty()、queue::size()用法及代码示例
- C++ queue::front()、queue::back()用法及代码示例
- C++ queue::push()、queue::pop()用法及代码示例
- C++ queue::emplace()用法及代码示例
- C++ quick_exit()用法及代码示例
- C++ qsort()用法及代码示例
- C++ cos()用法及代码示例
- C++ sin()用法及代码示例
- C++ asin()用法及代码示例
- C++ atan()用法及代码示例
- C++ atan2()用法及代码示例
- C++ acos()用法及代码示例
- C++ tan()用法及代码示例
- C++ sinh()用法及代码示例
- C++ ceil()用法及代码示例
- C++ tanh()用法及代码示例
- C++ fmod()用法及代码示例
- C++ acosh()用法及代码示例
- C++ asinh()用法及代码示例
- C++ floor()用法及代码示例
- C++ atanh()用法及代码示例
- C++ log()用法及代码示例
- C++ trunc()用法及代码示例
注:本文由纯净天空筛选整理自AyushSaxena大神的英文原创作品 queue push() and pop() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。