次の方法で共有


list::assign (STL Samples)

Visual C++ で list:: 割り当て の標準テンプレート ライブラリ関数を使用する方法に (STL) ついて説明します。

void assign(
   const_iterator First,
   const_iterator Last
);
void assign(
   size_type n,
   const T& x = T( )
);
iterator erase(
   iterator It
);
iterator erase(
   iterator First,
   iterator Last
); bool empty( ) const;

解説

[!メモ]

プロトタイプのクラスやパラメーター名はヘッダー ファイルのバージョンと一致しない。ただし読みやすさが向上するように変更されました。

一つ目のメンバー関数はシーケンス First[Last) *this 制御シーケンスを置き換えます。2 番目のメンバー関数は値 x. の n 個の要素の繰り返しの順序を制御 this を置き換えます *。*3 番目のメンバー関数は が指す被制御シーケンスの要素を削除します。4 番目のメンバー関数は範囲 [FirstLast) の被制御シーケンスの要素を削除します。そのような要素が存在しない場合戻り要素を削除した後に残った要素のうち最初の要素を指定する反復子では 終了 。最後の空のメンバー関数は被制御シーケンスの true を返します。

使用例

// assign.cpp 
// compile with: /EHsc
//
// Shows various ways to assign and erase elements
//        from a list<T>.
//
// Functions:
//    list::assign
//    list::empty
//    list::erase

#include <list>
#include <iostream>

using namespace std ;

typedef list<int> LISTINT;

int main()
{
    LISTINT listOne;
    LISTINT listAnother;
    LISTINT::iterator i;

    // Add some data
    listOne.push_front (2);
    listOne.push_front (1);
    listOne.push_back (3);

    listAnother.push_front(4);

    listAnother.assign(listOne.begin(), listOne.end());

    // 1 2 3
    for (i = listAnother.begin(); i != listAnother.end(); ++i)
        cout << *i << " ";
    cout << endl;

    listAnother.assign(4, 1);

    // 1 1 1 1
    for (i = listAnother.begin(); i != listAnother.end(); ++i)
        cout << *i << " ";
    cout << endl;

    listAnother.erase(listAnother.begin());

    // 1 1 1
    for (i = listAnother.begin(); i != listAnother.end(); ++i)
        cout << *i << " ";
    cout << endl;

    listAnother.erase(listAnother.begin(), listAnother.end());
    if (listAnother.empty())
        cout << "All gone\n";
}

出力

1 2 3 
1 1 1 1 
1 1 1 
All gone

必要条件

ヘッダー : <list>

参照

概念

標準テンプレート ライブラリのサンプル