public member function
<deque>

std::deque::push_front

void push_front (const value_type& val);
void push_front (const value_type& val);void push_front (value_type&& val);
在开头插入元素
deque 容器的开头插入一个新元素,位于其当前第一个元素之前。val 的内容会被复制(或移动)到已插入的元素中。

这会将容器的 size 有效地增加一。

参数

val
要被复制(或移动)到新插入元素的值。
成员类型value_type是容器中元素的类型,在 deque 中定义为其第一个模板参数(T).

返回值



)的别名。容器的 allocator 用于分配新元素所需的存储空间,这可能会在失败时抛出异常(对于默认的 allocator,会抛出bad_alloc如果分配请求不成功,则抛出)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// deque::push_front
#include <iostream>
#include <deque>

int main ()
{
  std::deque<int> mydeque (2,100);     // two ints with a value of 100
  mydeque.push_front (200);
  mydeque.push_front (300);

  std::cout << "mydeque contains:";
  for (std::deque<int>::iterator it = mydeque.begin(); it != mydeque.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

输出
300 200 100 100 


复杂度

常量。

迭代器有效性

所有与此容器相关的迭代器都已失效。指向容器中元素的指针和引用保持有效,并指向调用前它们所指向的同一元素。

数据竞争

容器被修改。
不访问现有元素(尽管请参见上面的“迭代器有效性”)。

异常安全

强保证:如果抛出异常,容器没有发生变化。
如果不支持使用 val 作为参数的 allocator_traits::construct,则会导致“未定义行为”。

另见