Visual C++ で list::list STL 関数を使用する

この記事では、Visual C++ で STL 関数を使用する list::list 方法について説明します。

元の製品バージョン: Visual C++
元の KB 番号: 158091

必須ヘッダー

<list>

プロトタイプ

explicit list(const A& al = A());
explicit list(size_type n, const T& v = T(), const A& al = A());
list(const list& x);
list(const_iterator first, const_iterator last, const A& al = A());

注:

プロトタイプのクラス/パラメーター名が、ヘッダー ファイルのバージョンと一致しない可能性があります。 読みやすさを向上させるために変更されたものもあります。

説明

最初のコンストラクターは、空の初期被制御シーケンスを指定します。 2 番目のコンストラクターは、値 xの要素のn繰り返しを指定します。 3 番目のコンストラクターは、 によって制御されるシーケンスのコピーを x指定します。 最後のコンストラクターは、シーケンス (firstlast) を指定します。 すべてのコンストラクターは、アロケーター オブジェクト al、または コピー コンストラクター の をアロケーターに格納し、 x.get_allocator()被制御シーケンスを初期化します。

サンプル コード

//////////////////////////////////////////////////////////////////////
// Compile options needed: -GX
// list.cpp : demonstrates the different constructors for list<T>
// Functions:
//    list::list
// Copyright (c) 1996 Microsoft Corporation. All rights reserved.
//////////////////////////////////////////////////////////////////////

#include <list>
#include <string>
#include <iostream>

#if _MSC_VER > 1020   // if VC++ version is > 4.2
   using namespace std;  // std c++ libs implemented in std
   #endif

typedef list<string, allocator<string> > LISTSTR;

// Try each of the four constructors
void main()
{
    LISTSTR::iterator i;
    LISTSTR test;                   // default constructor
    test.insert(test.end(), "one");
    test.insert(test.end(), "two");
    LISTSTR test2(test);            // construct from another list
    LISTSTR test3(3, "three");      // add several <T>'s
    LISTSTR test4(++test3.begin(),  // add part of another list
             test3.end());
    // Print them all out
    // one two
    for (i =  test.begin(); i != test.end(); ++i)
        cout << *i << " ";
    cout << endl;
    // one two
    for (i =  test2.begin(); i != test2.end(); ++i)
        cout << *i << " ";
    cout << endl;
    // three three three
    for (i =  test3.begin(); i != test3.end(); ++i)
        cout << *i << " ";
    cout << endl;
    // three three
    for (i =  test4.begin(); i != test4.end(); ++i)
        cout << *i << " ";
    cout << endl;
}

プログラム出力は次のとおりです。

one two
one two
three three three
three three