Usare la funzione STL list::list in Visual C++

Questo articolo illustra come usare la list::list funzione STL in Visual C++.

Versione originale del prodotto: Visual C++
Numero KB originale: 158091

Intestazione obbligatoria

<list>

Prototipo

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());

Nota

I nomi di classe/parametro nel prototipo potrebbero non corrispondere alla versione nel file di intestazione. Alcuni sono stati modificati per migliorare la leggibilità.

Descrizione

Il primo costruttore specifica una sequenza controllata iniziale vuota. Il secondo costruttore specifica una ripetizione di n elementi di valore x. Il terzo costruttore specifica una copia della sequenza controllata da x. L'ultimo costruttore specifica la sequenza (first, last). Tutti i costruttori archivia l'oggetto alallocatore o per il costruttore di copia, x.get_allocator(), in allocatore e inizializzano la sequenza controllata.

Codice di esempio

//////////////////////////////////////////////////////////////////////
// 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;
}

L'output del programma è:

one two
one two
three three three
three three