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,則會導致“未定義行為”。

另見