deque::pop_front() 和 deque::pop_back() 在 C++ STL 中的应用
双端队列或双向队列是一种序列容器,具有两端的扩展和收缩功能。它们类似于向量,但在插入和删除元素的末尾以及开头时更有效。与向量不同,不一定保证连续存储分配。
deque::pop_front()
pop_front() 函数用于从队列的前端弹出或删除元素。该值从队列的开头移除,容器大小减少 1。
语法:
dequename.pop_front()
参数:
不需要传递值作为参数。
结果:
从名为 dequename 的给定队列的前面删除值
示例:
错误和异常
- 无异常保证 – 如果抛出异常,则容器不会发生更改。
- 如果队列为空,则显示未定义行为。
输出:
应用: 通过 push_front() 函数输入一个空队列,并使用以下数字和顺序,并打印该队列的反向顺序。
输出:
时间复杂度: O(1)
辅助空间 : O(1)
deque::pop_back()
pop_back() 函数用于从队列的后端弹出或删除元素。该值从队列的末尾移除,容器大小减少 1。
语法:
dequename.pop_back()
参数:
不需要传递值作为参数。
结果:
从名为 dequename 的给定队列的末尾或后面删除值
示例:
错误和异常
- 如果抛出异常,容器不会发生任何变化。
- 如果deque为空,则会显示未定义的行为。
输出:
应用:
使用push_front()函数输入以下数字和顺序的空deque,并打印deque的反向输出。
输出:
时间复杂度: O(1)
辅助空间: O(1)
让我们以表格形式看一下它们之间的区别:
ID | deque::pop_front() | deque::pop_back() |
---|---|---|
1. | 用于删除deque容器中的第一个元素。 | 用于删除deque容器中的最后一个元素。 |
2. | 其语法为-:pop_front(); | 其语法为-:pop_back(); |
3. | 它不带任何参数。 | 它不带任何参数。 |
4. | 没有任何返回值。 | 没有任何返回值。 |
5. | 其复杂度是常数。 | 其复杂度是常数。 |