• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class template
    <iterator>

    std::back_insert_iterator

    namespace std {
      template <class Container>
      class back_insert_iterator
        : public iterator<output_iterator_tag, void, void, void, void>;
    
    }
    

    概要

    back_insert_iteratorは出力イテレータであり、代入の際にコンテナのpush_back()メンバ関数を呼び出すイテレータアダプタである。

    メンバ関数

    名前 説明 対応バージョン
    (constructor) コンストラクタ
    ~back_insert_iterator() = default デストラクタ
    operator= 代入演算子
    operator* 間接参照演算子
    operator++ イテレータをインクリメントする

    protectedメンバ変数

    変数名 対応バージョン
    container Container*

    メンバ型

    名前 説明 対応バージョン
    container_type Container
    difference_type void
    difference_type ptrdiff_t C++20
    pointer void
    value_type void
    iterator_category output_iterator_tag
    reference void

    非メンバ関数

    名前 説明 対応バージョン
    back_inserter back_insert_iteratorのヘルパ関数

    #include <iostream>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
      std::vector<int> src = {1, 2, 3};
      std::vector<int> dest;
    
      // srcの要素をdestに追加しながらコピー
      dest.reserve(src.size());
      std::copy(src.begin(), src.end(), std::back_inserter(dest));
    
      for (int x : dest) {
        std::cout << x << std::endl;
      }
    }
    

    出力

    1
    2
    3
    

    参照