最終更新日時(UTC): 2026年02月17日 14時22分33秒
Akira Takahashi が更新

履歴 編集

function
<deque>

# std::deque::push_back

    void push_back(const T& x);           // (1) C++03
    constexpr void push_back(const T& x); // (1) C++26

    void push_back(T&& y);           // (2) C++11
    constexpr void push_back(T&& y); // (2) C++26

## 概要

末尾に要素を追加する。

## 効果

- (1) : `x`のコピーを末尾に追加する
- (2) : 一時オブジェクト`x`を移動して末尾に追加する

## 戻り値

なし

## 計算量

定数時間

## 備考

操作中に例外が発生した場合、副作用は発生しない。

## 例

    #include <iostream>
    #include <deque>
    #include <string>

    int main()
    {
      std::deque<std::string> c;

      // const&バージョン
      std::string s = "hello";
      c.push_back(s);

      // &&バージョン
      c.push_back(std::string("world"));

      for (auto x : c) {
        std::cout << x << std::endl;
      }
    }

### 出力

    hello
    world

## 関連項目

名前 | 説明
--- | ---
`emplace_back` | 末尾に要素を直接構築で追加する
`push_front` | 先頭に要素を追加する
`insert` | 任意の位置に要素を挿入する

## 参照

- LWG Issue 2252. Strong guarantee on `vector::push_back()` still broken with C++11?
  - 経緯の説明は、`vector::push_back()`ページを参照。
- P3372R3 constexpr containers and adaptors