STLの--挿入反復器(back_inserter,inserter,front_inserterの違い

1667 ワード

通常の反復器に加えて、C++標準テンプレートライブラリには、挿入反復器、ストリーム反復器、逆反復器、および移動反復器のいくつかの特殊な反復器が定義されています.ヘッダファイルで定義されています.次に、主に3つの挿入反復器(back_inserter、inserter、front_inserter)の違いについて説明します.まず、反復器の挿入とは何ですか?挿入反復器とは、1つのコンテナにバインドされ、コンテナに要素を挿入するために使用できる反復器です.back_Inserter:push_を使用する作成backの反復器inserter:この関数は2番目のパラメータを受け入れます.このパラメータは、所与の容器を指す反復器でなければなりません.要素は、指定した反復器で表される要素の前に挿入されます.front_Inserter:push_を使用する作成frontの反復器(要素は常にコンテナの最初の要素に挿入される前に)listコンテナタイプは双方向チェーンテーブルであるためpush_をサポートするfrontとpush_back操作なのでlistタイプを選択して3つの反復器を試験します.
list<int> lst = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
list<int> lst2 ={10}, lst3={10},lst4={10};
copy(lst.cbegin(), lst.cend(), back_inserter(lst2));
//lst2  10,1,2,3,4,5,6,7,8,9
copy(lst.cbegin(), lst.cend(), inserter(lst3, lst3.begin()));
//lst3  1,2,3,4,5,6,7,8,9,10
copy(lst.cbegin(), lst.cend(), front_inserter(lst4));
//lst4  9,8,7,6,5,4,3,2,1,10

変換元:https://blog.csdn.net/github_35681219/article/details/52564780