在C++ STL中 deque::push_front()
Deque或双端队列是具有在两端扩展和收缩功能的序列容器。它们类似于向量,但在插入和删除元素末尾以及开头时更有效率。与向量不同,连续存储分配不能保证。
deque::push_front()
push_front()函数用于从前面将元素推入deque。新值被插入到当前第一个元素之前的deque中,并且容器大小增加1。
语法 :
dequename.push_front(value)
参数 :
要添加到前面的值作为参数传递
结果 :
将作为参数提到的值添加到名为dequename的deque的前面
例如:
输入: deque{1, 2, 3, 4, 5};
deque.push_front(6);
输出: 6, 1, 2, 3, 4, 5
输入: deque{5, 4, 3, 2, 1};
deque.push_front(6);
输出:6, 5, 4, 3, 2, 1
错误和异常
1. 强烈的异常保证-如果抛出异常,则容器中没有更改。
2. 如果作为参数传递的值不受deque支持,则会显示未定义的行为。
// CPP程序说明
//push_front()函数
#include <deque>
#include <iostream>
using namespace std;
int main()
{
deque<int> mydeque{ 1, 2, 3, 4, 5 };
mydeque.push_front(6);
// deque becomes 6, 1, 2, 3, 4, 5
for (auto it = mydeque.begin();
it != mydeque.end(); ++it)
cout << ' ' << *it;
}
输出:
6 1 2 3 4 5
时间复杂度 : O(1)
应用
给定一个空的deque,使用push_front()函数添加整数,然后计算其大小。
输入 : 1, 2, 3, 4, 5, 6
输出 : 6
算法
1.使用push_front()函数将元素添加到deque中
2.检查deque的大小是否为0,如果不是,则将计数器变量初始化为0并将其弹出第一个元素。
3.重复此步骤,直到deque的大小变为0。
4.打印变量的最终值。
// CPP program to illustrate
// push_front() function
#include <deque>
#include <iostream>
using namespace std;
int main()
{
int count = 0;
deque<int> mydeque;
mydeque.push_front(1);
mydeque.push_front(2);
mydeque.push_front(3);
mydeque.push_front(4);
mydeque.push_front(5);
mydeque.push_front(6);
while (!mydeque.empty()) {
count++;
mydeque.pop_front();
}
cout << count;
return 0;
}
输出:
6