Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Mallklassen beskriver ett objekt som styr en sekvens med varierande längd med element som har dubbelriktad åtkomst. Du använder containern list för att hantera en sekvens med element som en dubbelriktad länkad lista över noder som var och en lagrar ett element.
I beskrivningen nedan är GValue samma som Value om inte det senare är en referenstyp, i vilket fall det är Value^.
Syntax
template<typename Value>
ref class list
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
Microsoft::VisualC::StlClr::IList<GValue>
{ ..... };
Parametrar
Värde
Typen av ett element i den kontrollerade sekvensen.
Krav
rubrik:<cliext/list>
namnområde: cliext
Deklarationer
| Typdefinition | Beskrivning |
|---|---|
| lista::const_iterator (STL/CLR) | Typen av en konstant iterator för den kontrollerade sekvensen. |
| lista::const_reference (STL/CLR) | Typen av en konstant referens till ett element. |
| lista::const_reverse_iterator (STL/CLR) | Typen av en konstant omvänd iterator för den kontrollerade sekvensen. |
| list::d ifference_type (STL/CLR) | Typen av ett signerat avstånd mellan två element. |
| lista::generic_container (STL/CLR) | Typen av det generiska gränssnittet för containern. |
| lista::generic_iterator (STL/CLR) | Typen av iterator för det generiska gränssnittet för containern. |
| lista::generic_reverse_iterator (STL/CLR) | Typen av omvänd iterator för det generiska gränssnittet för containern. |
| lista::generic_value (STL/CLR) | Typ av element för det generiska gränssnittet för containern. |
| lista::iterator (STL/CLR) | Typ av iterator för den kontrollerade sekvensen. |
| list::reference (STL/CLR) | Typen av referens till ett element. |
| lista::reverse_iterator (STL/CLR) | Typen av omvänd iterator för den kontrollerade sekvensen. |
| lista::size_type (STL/CLR) | Typen av ett signerat avstånd mellan två element. |
| lista::value_type (STL/CLR) | Typ av element. |
| Medlemsfunktion | Beskrivning |
|---|---|
| lista::tilldela (STL/CLR) | Ersätter alla element. |
| lista::back (STL/CLR) | Öppnar det sista elementet. |
| lista::begin (STL/CLR) | Anger början av den kontrollerade sekvensen. |
| lista::clear (STL/CLR) | Tar bort alla element. |
| lista::tom (STL/CLR) | Testar om det inte finns några element. |
| lista::end (STL/CLR) | Anger slutet på den kontrollerade sekvensen. |
| lista::radera (STL/CLR) | Tar bort element vid angivna positioner. |
| lista::front (STL/CLR) | Öppnar det första elementet. |
| list::insert (STL/CLR) | Lägger till element på en angiven position. |
| lista::list (STL/CLR) | Skapar ett containerobjekt. |
| list::merge (STL/CLR) | Sammanfogar två ordnade kontrollerade sekvenser. |
| list::p op_back (STL/CLR) | Tar bort det sista elementet. |
| list::p op_front (STL/CLR) | Tar bort det första elementet. |
| list::p ush_back (STL/CLR) | Lägger till ett nytt sista element. |
| list::p ush_front (STL/CLR) | Lägger till ett nytt första element. |
| lista::rbegin (STL/CLR) | Anger början av den omvända kontrollerade sekvensen. |
| lista::ta bort (STL/CLR) | Tar bort ett element med ett angivet värde. |
| lista::remove_if (STL/CLR) | Tar bort element som klarar ett angivet test. |
| lista::rend (STL/CLR) | Anger slutet på den omvända kontrollerade sekvensen. |
| lista::ändra storlek (STL/CLR) | Ändrar antalet element. |
| lista::omvänd (STL/CLR) | Vänder den kontrollerade sekvensen. |
| lista::size (STL/CLR) | Räknar antalet element. |
| lista::sort (STL/CLR) | Beställer den kontrollerade sekvensen. |
| lista::splice (STL/CLR) | Restitches länkar mellan noder. |
| list::swap (STL/CLR) | Växlar innehållet i två containrar. |
| lista::to_array (STL/CLR) | Kopierar den kontrollerade sekvensen till en ny matris. |
| lista::unik (STL/CLR) | Tar bort intilliggande element som klarar ett angivet test. |
| Egenskap | Beskrivning |
|---|---|
| lista::back_item (STL/CLR) | Öppnar det sista elementet. |
| lista::front_item (STL/CLR) | Öppnar det första elementet. |
| Operatör | Beskrivning |
|---|---|
| lista::operator= (STL/CLR) | Ersätter den kontrollerade sekvensen. |
| operator!= (lista) (STL/CLR) | Avgör om ett list objekt inte är lika med ett annat list objekt. |
| operator< (lista) (STL/CLR) | Avgör om ett list objekt är mindre än ett annat list objekt. |
| operatorn<= (lista) (STL/CLR) | Avgör om ett list objekt är mindre än eller lika med ett annat list objekt. |
| operator== (lista) (STL/CLR) | Avgör om ett list objekt är lika med ett annat list objekt. |
| operator> (lista) (STL/CLR) | Avgör om ett list objekt är större än ett annat list objekt. |
| operatorn>= (lista) (STL/CLR) | Avgör om ett list objekt är större än eller lika med ett annat list objekt. |
Gränssnitt
| Gränssnitt | Beskrivning |
|---|---|
| ICloneable | Duplicera ett objekt. |
| IEnumerable | Sekvens genom element. |
| ICollection | Underhåll en grupp med element. |
| IEnumerable<T> | Sekvens genom inskrivna element. |
| ICollection<T> | Behåll gruppen med inskrivna element. |
| IList<Value> | Underhåll allmän container. |
Anmärkningar
Objektet allokerar och frigör lagring för den sekvens som det styr som enskilda noder i en dubbelriktad länklista. Den ordnar om element genom att ändra länkarna mellan noder, aldrig genom att kopiera innehållet i en nod till en annan. Det innebär att du kan infoga och ta bort element fritt utan att störa återstående element. Därför är en lista en bra kandidat för den underliggande containern för mallklassen kö (STL/CLR) eller mallklassen stack (STL/CLR).
Ett list-objekt stöder dubbelriktade iteratorer, vilket innebär att du kan gå till intilliggande element med tanke på en iterator som anger ett element i den kontrollerade sekvensen. En särskild huvudnod motsvarar iteratorn som returneras av lista::end (STL/CLR)(). Du kan minska iteratorn för att nå det sista elementet i den kontrollerade sekvensen, om det finns. Du kan öka en list-iterator för att nå huvudnoden, och den jämför sedan lika med end(). Men du kan inte avreferering av iteratorn som returneras av end().
Observera att du inte kan referera till ett listelement direkt med tanke på dess numeriska position – som kräver en iterator med slumpmässig åtkomst. En lista kan därför inte användbar som den underliggande containern för mallklassen priority_queue (STL/CLR).
En list iterator lagrar ett handtag till sin associerade listnod, som i sin tur lagrar ett handtag till sin associerade container. Du kan bara använda iteratorer med deras associerade containerobjekt. En list-iterator förblir giltig så länge dess associerade listnod är associerad med en lista. Dessutom kan en giltig iterator dereferencable – du kan använda den för att komma åt eller ändra det elementvärde som den anger – så länge den inte är lika med end().
Om du raderar eller tar bort ett element anropas destructor för dess lagrade värde. Om du förstör containern raderas alla element. En container vars elementtyp är en referensklass säkerställer därför att inga element överlever containern. Observera dock att en container med referenser inte förstöra dess element.
Medlemmar
list::assign (STL/CLR)
Ersätter alla element.
Syntax
void assign(size_type count, value_type val);
template<typename InIt>
void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Uppräkning som ska infogas.
val
Värdet för elementet som ska infogas.
Anmärkningar
Den första medlemsfunktionen ersätter den kontrollerade sekvensen med en upprepning av antal element i värdet val. Du använder den för att fylla containern med element som alla har samma värde.
Om InIt är en heltalstyp fungerar den andra medlemsfunktionen på samma sätt som assign((size_type)first, (value_type)last). Annars ersätter den den kontrollerade sekvensen med sekvensen [first, last). Du använder den för att göra den kontrollerade sekvensen till en kopia till en annan sekvens.
Den tredje medlemsfunktionen ersätter den kontrollerade sekvensen med sekvensen som anges av uppräknaren höger. Du använder den för att göra den kontrollerade sekvensen till en kopia av en sekvens som beskrivs av en uppräknare.
Exempel
// cliext_list_assign.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// assign a repetition of values
cliext::list<wchar_t> c2;
c2.assign(6, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an iterator range
cliext::list<wchar_t>::iterator it = c1.end();
c2.assign(c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an enumeration
c2.assign( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
x x x x x x
a b
a b c
list::back (STL/CLR)
Öppnar det sista elementet.
Syntax
reference back();
Anmärkningar
Medlemsfunktionen returnerar en referens till det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att komma åt det sista elementet när du vet att det finns.
Exempel
// cliext_list_back.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back() = {0}", c1.back());
// alter last item and reinspect
c1.back() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back() = c
a b x
list::back_item (STL/CLR)
Öppnar det sista elementet.
Syntax
property value_type back_item;
Anmärkningar
Egenskapen kommer åt det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det sista elementet när du vet att det finns.
Exempel
// cliext_list_back_item.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back_item = {0}", c1.back_item);
// alter last item and reinspect
c1.back_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back_item = c
a b x
list::begin (STL/CLR)
Anger början av den kontrollerade sekvensen.
Syntax
iterator begin();
Anmärkningar
Medlemsfunktionen returnerar en iterator med slumpmässig åtkomst som anger det första elementet i den kontrollerade sekvensen, eller strax efter slutet av en tom sekvens. Du använder den för att hämta en iterator som anger current början av den kontrollerade sekvensen, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// cliext_list_begin.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::list<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("*begin() = {0}", *it);
System::Console::WriteLine("*++begin() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*begin() = a
*++begin() = b
x y c
list::clear (STL/CLR)
Tar bort alla element.
Syntax
void clear();
Anmärkningar
Medlemsfunktionen anropar effektivt lista::radera (STL/CLR)(lista::begin (STL/CLR)(),lista::end (STL/CLR)()). Du använder den för att se till att den kontrollerade sekvensen är tom.
Exempel
// cliext_list_clear.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
size() = 0
a b
size() = 0
list::const_iterator (STL/CLR)
Typen av en konstant iterator för den kontrollerade sekvensen.
Syntax
typedef T2 const_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T2 som kan fungera som en konstant iterator med slumpmässig åtkomst för den kontrollerade sekvensen.
Exempel
// cliext_list_const_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::list<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
System::Console::Write("{0} ", *cit);
System::Console::WriteLine();
return (0);
}
a b c
list::const_reference (STL/CLR)
Typen av en konstant referens till ett element.
Syntax
typedef value_type% const_reference;
Anmärkningar
Typen beskriver en konstant referens till ett element.
Exempel
// cliext_list_const_reference.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::list<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
{ // get a const reference to an element
cliext::list<wchar_t>::const_reference cref = *cit;
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
a b c
list::const_reverse_iterator (STL/CLR)
Typen av en konstant omvänd iterator för den kontrollerade sekvensen.
Syntax
typedef T4 const_reverse_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T4 som kan fungera som en konstant omvänd iterator för den kontrollerade sekvensen.
Exempel
// cliext_list_const_reverse_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::list<wchar_t>::const_reverse_iterator crit = c1.rbegin();
cliext::list<wchar_t>::const_reverse_iterator crend = c1.rend();
for (; crit != crend; ++crit)
System::Console::Write("{0} ", *crit);
System::Console::WriteLine();
return (0);
}
c b a
list::d ifference_type (STL/CLR)
Typerna av ett signerat avstånd mellan två element.
Syntax
typedef int difference_type;
Anmärkningar
Typen beskriver ett signerat elementantal.
Exempel
// cliext_list_difference_type.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::list<wchar_t>::difference_type diff = 0;
for (cliext::list<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it) ++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
// compute negative difference
diff = 0;
for (cliext::list<wchar_t>::iterator it = c1.end();
it != c1.begin(); --it) --diff;
System::Console::WriteLine("begin()-end() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
begin()-end() = -3
list::empty (STL/CLR)
Testar om det inte finns några element.
Syntax
bool empty();
Anmärkningar
Medlemsfunktionen returnerar true för en tom kontrollerad sekvens. Det motsvarar lista::storlek (STL/CLR)() == 0. Du använder den för att testa om listan är tom.
Exempel
// cliext_list_empty.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
list::end (STL/CLR)
Anger slutet på den kontrollerade sekvensen.
Syntax
iterator end();
Anmärkningar
Medlemsfunktionen returnerar en iterator med slumpmässig åtkomst som pekar precis utanför slutet av den kontrollerade sekvensen. Du använder den för att hämta en iterator som anger slutet på den kontrollerade sekvensen. dess status ändras inte om längden på den kontrollerade sekvensen ändras.
Exempel
// cliext_list_end.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last two items
cliext::list<wchar_t>::iterator it = c1.end();
--it;
System::Console::WriteLine("*-- --end() = {0}", *--it);
System::Console::WriteLine("*--end() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --end() = b
*--end() = c
a x y
list::erase (STL/CLR)
Tar bort element vid angivna positioner.
Syntax
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Parametrar
första
Början av intervallet som ska raderas.
senaste
Slutet av intervallet som ska raderas.
där
Element som ska raderas.
Anmärkningar
Den första medlemsfunktionen tar bort elementet i den kontrollerade sekvensen som pekas på av där. Du använder det för att ta bort ett enda element.
Den andra medlemsfunktionen tar bort elementen i den kontrollerade sekvensen i intervallet [first, last). Du använder den för att ta bort noll eller fler sammanhängande element.
Båda medlemsfunktionerna returnerar en iterator som anger det första elementet som återstår utöver alla element som tas bort, eller lista::end (STL/CLR)() om det inte finns något sådant element.
Vid radering av element är antalet elementkopior linjärt i antalet element mellan slutet av radering och den närmaste änden av sekvensen. (När du raderar ett eller flera element i slutet av sekvensen sker inga elementkopior.)
Exempel
// cliext_list_erase.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase an element and reinspect
System::Console::WriteLine("erase(begin()) = {0}",
*c1.erase(c1.begin()));
// add elements and display " b c d e"
c1.push_back(L'd');
c1.push_back(L'e');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase all but end
cliext::list<wchar_t>::iterator it = c1.end();
System::Console::WriteLine("erase(begin(), end()-1) = {0}",
*c1.erase(c1.begin(), --it));
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
erase(begin()) = b
b c d e
erase(begin(), end()-1) = e
size() = 1
list::front (STL/CLR)
Öppnar det första elementet.
Syntax
reference front();
Anmärkningar
Medlemsfunktionen returnerar en referens till det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det första elementet när du vet att det finns.
Exempel
// cliext_list_front.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front() = {0}", c1.front());
// alter first item and reinspect
c1.front() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front() = a
x b c
list::front_item (STL/CLR)
Öppnar det första elementet.
Syntax
property value_type front_item;
Anmärkningar
Egenskapen kommer åt det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder det för att läsa eller skriva det första elementet när du vet att det finns.
Exempel
// cliext_list_front_item.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front_item = {0}", c1.front_item);
// alter first item and reinspect
c1.front_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front_item = a
x b c
list::generic_container (STL/CLR)
Typen av det generiska gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::
IList<generic_value>
generic_container;
Anmärkningar
Typen beskriver det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// cliext_list_generic_container.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::list<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->insert(gc1->end(), L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push_back(L'e');
System::Collections::IEnumerator^ enum1 =
gc1->GetEnumerator();
while (enum1->MoveNext())
System::Console::Write("{0} ", enum1->Current);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
list::generic_iterator (STL/CLR)
Typen av iterator som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::Generic::
ContainerBidirectionalIterator<generic_value>
generic_iterator;
Anmärkningar
Typen beskriver en allmän iterator som kan användas med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// cliext_list_generic_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::list<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::list<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::list<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
list::generic_reverse_iterator (STL/CLR)
Typen av omvänd iterator som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef Microsoft::VisualC::StlClr::Generic::
ReverseBidirectionalIterator<generic_value> generic_reverse_iterator;
Anmärkningar
Typen beskriver en allmän omvänd iterator som kan användas med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// cliext_list_generic_reverse_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::list<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::list<wchar_t>::generic_reverse_iterator gcit = gc1->rbegin();
cliext::list<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a c c
list::generic_value (STL/CLR)
Typen av ett element som ska användas med det allmänna gränssnittet för containern.
Syntax
typedef GValue generic_value;
Anmärkningar
Typen beskriver ett objekt av typen GValue som beskriver det lagrade elementvärdet för användning med det allmänna gränssnittet för den här mallcontainerklassen.
Exempel
// cliext_list_generic_value.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::list<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::list<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::list<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
list::insert (STL/CLR)
Lägger till element på en angiven position.
Syntax
iterator insert(iterator where, value_type val);
void insert(iterator where, size_type count, value_type val);
template<typename InIt>
void insert(iterator where, InIt first, InIt last);
void insert(iterator where,
System::Collections::Generic::IEnumerable<Value>^ right);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Uppräkning som ska infogas.
val
Värdet för elementet som ska infogas.
där
Var i containern du ska infoga innan.
Anmärkningar
Var och en av medlemsfunktionerna infogar, innan elementet pekas på av där i den kontrollerade sekvensen, en sekvens som anges av de återstående operanderna.
Den första medlemsfunktionen infogar ett element med värdet val och returnerar en iterator som anger det nyligen infogade elementet. Du använder det för att infoga ett enda element före en plats som har angetts av en iterator.
Den andra medlemsfunktionen infogar en upprepning av antal element i värdet val. Du använder den för att infoga noll eller fler sammanhängande element som alla är kopior av samma värde.
Om InIt är en heltalstyp fungerar den tredje medlemsfunktionen på samma sätt som insert(where, (size_type)first, (value_type)last). Annars infogas sekvensen [first, last). Du använder den för att infoga noll eller fler sammanhängande element som kopierats från en annan sekvens.
Den fjärde medlemsfunktionen infogar sekvensen som anges av höger. Du använder den för att infoga en sekvens som beskrivs av en uppräknare.
När du infogar ett enda element är antalet elementkopior linjärt i antalet element mellan insättningspunkten och sekvensens närmaste slut. (När du infogar ett eller flera element i slutet av sekvensen sker inga elementkopior.) Om InIt är en indata-iterator utför den tredje medlemsfunktionen effektivt en enda insättning för varje element i sekvensen. När du infogar N element är annars antalet elementkopior linjärt i N plus antalet element mellan insättningspunkten och sekvensens närmaste slut.
Exempel
// cliext_list_insert.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a single value using iterator
cliext::list<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("insert(begin()+1, L'x') = {0}",
*c1.insert(++it, L'x'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a repetition of values
cliext::list<wchar_t> c2;
c2.insert(c2.begin(), 2, L'y');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an iterator range
it = c1.end();
c2.insert(c2.end(), c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an enumeration
c2.insert(c2.begin(), // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a single value using index
it = c2.begin();
++it, ++it, ++it;
c2.insert(it, L'z');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
insert(begin()+1, L'x') = x
a x b c
y y
y y a x b
a x b c y y a x b
list::iterator (STL/CLR)
Typ av iterator för den kontrollerade sekvensen.
Syntax
typedef T1 iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T1 som kan fungera som en iterator med slumpmässig åtkomst för den kontrollerade sekvensen.
Exempel
// cliext_list_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::list<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
// alter first element and redisplay
it = c1.begin();
*it = L'x';
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
x b c
list::list (STL/CLR)
Skapar ett containerobjekt.
Syntax
list();
list(list<Value>% right);
list(list<Value>^ right);
explicit list(size_type count);
list(size_type count, value_type val);
template<typename InIt>
list(InIt first, InIt last);
list(System::Collections::Generic::IEnumerable<Value>^ right);
Parametrar
antal
Antal element som ska infogas.
första
Början av intervallet som ska infogas.
senaste
Slutet av intervallet som ska infogas.
rätt
Objekt eller område som ska infogas.
val
Värdet för elementet som ska infogas.
Anmärkningar
Konstruktorn:
list();
initierar den kontrollerade sekvensen utan element. Du använder den för att ange en tom inledande kontrollerad sekvens.
Konstruktorn:
list(list<Value>% right);
initierar den kontrollerade sekvensen med sekvensen [right.begin(), right.end()). Du använder den för att ange en inledande kontrollerad sekvens som är en kopia av sekvensen som styrs av listobjektet höger.
Konstruktorn:
list(list<Value>^ right);
initierar den kontrollerade sekvensen med sekvensen [right->begin(), right->end()). Du använder den för att ange en inledande kontrollerad sekvens som är en kopia av sekvensen som styrs av listobjektet vars handtag rätt.
Konstruktorn:
explicit list(size_type count);
initierar den kontrollerade sekvensen med antal element var och en med värdet value_type(). Du använder den för att fylla containern med element som alla har standardvärdet.
Konstruktorn:
list(size_type count, value_type val);
initierar den kontrollerade sekvensen med antal element med värdet val. Du använder den för att fylla containern med element som alla har samma värde.
Konstruktorn:
template<typename InIt>
list(InIt first, InIt last);
initierar den kontrollerade sekvensen med sekvensen [first, last). Du använder den för att göra den kontrollerade sekvensen till en kopia av en annan sekvens.
Konstruktorn:
list(System::Collections::Generic::IEnumerable<Value>^ right);
initierar den kontrollerade sekvensen med sekvensen som anges av uppräknaren höger. Du använder den för att göra den kontrollerade sekvensen till en kopia av en annan sekvens som beskrivs av en uppräknare.
Exempel
// cliext_list_construct.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
// construct an empty container
cliext::list<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct with a repetition of default values
cliext::list<wchar_t> c2(3);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// construct with a repetition of values
cliext::list<wchar_t> c3(6, L'x');
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an iterator range
cliext::list<wchar_t>::iterator it = c3.end();
cliext::list<wchar_t> c4(c3.begin(), --it);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an enumeration
cliext::list<wchar_t> c5( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c3);
for each (wchar_t elem in c5)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
cliext::list<wchar_t> c7(c3);
for each (wchar_t elem in c7)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying a container handle
cliext::list<wchar_t> c8(%c3);
for each (wchar_t elem in c8)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0
x x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x
list::merge (STL/CLR)
Sammanfogar två ordnade kontrollerade sekvenser.
Syntax
void merge(list<Value>% right);
template<typename Pred2>
void merge(list<Value>% right, Pred2 pred);
Parametrar
före
Jämförelse för elementpar.
rätt
Container som ska sammanfogas.
Anmärkningar
Den första medlemsfunktionen tar bort alla element från sekvensen som styrs av höger och infogar dem i den kontrollerade sekvensen. Båda sekvenserna måste ordnas tidigare av operator< – element får inte minska i värde när du går igenom någon av sekvenserna. Den resulterande sekvensen sorteras också efter operator<. Du använder den här medlemsfunktionen för att sammanfoga två sekvenser som ökar i värde till en sekvens som också ökar i värde.
Den andra medlemsfunktionen fungerar på samma sätt som den första, förutom att sekvenserna ordnas efter pred -- pred(X, Y) måste vara false för alla element X som följer elementet Y i sekvensen. Du använder den för att sammanfoga två sekvenser ordnade efter en predikatfunktion eller ett ombud som du anger.
Båda funktionerna utför en stabil sammanslagning – inga elementpar i någon av de ursprungliga kontrollerade sekvenserna är omvända i den resulterande kontrollerade sekvensen. Om ett par element X och Y i den resulterande kontrollerade sekvensen har motsvarande ordning – !(X < Y) && !(X < Y) – visas ett element från den ursprungliga kontrollerade sekvensen innan ett element från sekvensen som styrs av höger.
Exempel
// cliext_list_merge.cpp
// compile with: /clr
#include <cliext/list>
typedef cliext::list<wchar_t> Mylist;
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'c');
c1.push_back(L'e');
// display initial contents " a c e"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
cliext::list<wchar_t> c2;
c2.push_back(L'b');
c2.push_back(L'd');
c2.push_back(L'f');
// display initial contents " b d f"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// merge and display
cliext::list<wchar_t> c3(c1);
c3.merge(c2);
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("c2.size() = {0}", c2.size());
// sort descending, merge descending, and redisplay
c1.sort(cliext::greater<wchar_t>());
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c3.sort(cliext::greater<wchar_t>());
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c3.merge(c1, cliext::greater<wchar_t>());
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("c1.size() = {0}", c1.size());
return (0);
}
a c e
b d f
a b c d e f
c2.size() = 0
e c a
f e d c b a
f e e d c c b a a
c1.size() = 0
list::operator= (STL/CLR)
Ersätter den kontrollerade sekvensen.
Syntax
list<Value>% operator=(list<Value>% right);
Parametrar
rätt
Container som ska kopieras.
Anmärkningar
Medlemsoperatorn kopierar höger till objektet och returnerar sedan *this. Du använder den för att ersätta den kontrollerade sekvensen med en kopia av den kontrollerade sekvensen i högra.
Exempel
// cliext_list_operator_as.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2 = c1;
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
list::p op_back (STL/CLR)
Tar bort det sista elementet.
Syntax
void pop_back();
Anmärkningar
Medlemsfunktionen tar bort det sista elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder den för att förkorta listan med ett element längst bak.
Exempel
// cliext_list_pop_back.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_back();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b
list::p op_front (STL/CLR)
Tar bort det första elementet.
Syntax
void pop_front();
Anmärkningar
Medlemsfunktionen tar bort det första elementet i den kontrollerade sekvensen, som måste vara icke-tom. Du använder den för att förkorta listan med ett element längst fram.
Exempel
// cliext_list_pop_front.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_front();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
b c
list::p ush_back (STL/CLR)
Lägger till ett nytt sista element.
Syntax
void push_back(value_type val);
Anmärkningar
Medlemsfunktionen infogar ett element med värdet val i slutet av den kontrollerade sekvensen. Du använder det för att lägga till ett annat element i listan.
Exempel
// cliext_list_push_back.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
list::p ush_front (STL/CLR)
Lägger till ett nytt första element.
Syntax
void push_front(value_type val);
Anmärkningar
Medlemsfunktionen infogar ett element med värdet val i början av den kontrollerade sekvensen. Du använder det för att förbereda ett annat element i listan.
Exempel
// cliext_list_push_front.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_front(L'a');
c1.push_front(L'b');
c1.push_front(L'c');
// display contents " c b a"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
c b a
list::rbegin (STL/CLR)
Anger början av den omvända kontrollerade sekvensen.
Syntax
reverse_iterator rbegin();
Anmärkningar
Medlemsfunktionen returnerar en omvänd iterator som anger det sista elementet i den kontrollerade sekvensen, eller precis utanför början av en tom sekvens. Därför anges beginning för den omvända sekvensen. Du använder den för att hämta en iterator som anger current början av den kontrollerade sekvensen som visas i omvänd ordning, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// cliext_list_rbegin.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items in reversed sequence
cliext::list<wchar_t>::reverse_iterator rit = c1.rbegin();
System::Console::WriteLine("*rbegin() = {0}", *rit);
System::Console::WriteLine("*++rbegin() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*rbegin() = c
*++rbegin() = b
a y x
list::reference (STL/CLR)
Typen av referens till ett element.
Syntax
typedef value_type% reference;
Anmärkningar
Typen beskriver en referens till ett element.
Exempel
// cliext_list_reference.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::list<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
{ // get a reference to an element
cliext::list<wchar_t>::reference ref = *it;
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
// modify contents " a b c"
for (it = c1.begin(); it != c1.end(); ++it)
{ // get a reference to an element
cliext::list<wchar_t>::reference ref = *it;
ref += (wchar_t)(L'A' - L'a');
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
return (0);
}
a b c
A B C
list::remove (STL/CLR)
Tar bort ett element med ett angivet värde.
Syntax
void remove(value_type val);
Parametrar
val
Värdet för elementet som ska tas bort.
Anmärkningar
Medlemsfunktionen tar bort ett element i den kontrollerade sekvensen där ((System::Object^)val)->Equals((System::Object^)x) är sant (om det finns några). Du använder det för att radera ett godtyckligt element med det angivna värdet.
Exempel
// cliext_list_remove.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// fail to remove and redisplay
c1.remove(L'A');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// remove and redisplay
c1.remove(L'b');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a c
list::remove_if (STL/CLR)
Tar bort element som klarar ett angivet test.
Syntax
template<typename Pred1>
void remove_if(Pred1 pred);
Parametrar
före
Testa för element att ta bort.
Anmärkningar
Medlemsfunktionen tar bort från den kontrollerade sekvensen (raderar) varje element X som pred(X) är sant för. Du använder den för att ta bort alla element som uppfyller ett villkor som du anger som en funktion eller ett ombud.
Exempel
// cliext_list_remove_if.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'b');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b b b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// fail to remove and redisplay
c1.remove_if(cliext::binder2nd<cliext::equal_to<wchar_t> >(
cliext::equal_to<wchar_t>(), L'd'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// remove and redisplay
c1.remove_if(cliext::binder2nd<cliext::not_equal_to<wchar_t> >(
cliext::not_equal_to<wchar_t>(), L'b'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b b b c
a b b b c
b b b
list::rend (STL/CLR)
Anger slutet på den omvända kontrollerade sekvensen.
Syntax
reverse_iterator rend();
Anmärkningar
Medlemsfunktionen returnerar en omvänd iterator som pekar precis utanför början av den kontrollerade sekvensen. Därför anges end för den omvända sekvensen. Du använder den för att hämta en iterator som anger current slutet av den kontrollerade sekvensen som visas i omvänd ordning, men dess status kan ändras om längden på den kontrollerade sekvensen ändras.
Exempel
// cliext_list_rend.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::list<wchar_t>::reverse_iterator rit = c1.rend();
--rit;
System::Console::WriteLine("*-- --rend() = {0}", *--rit);
System::Console::WriteLine("*--rend() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --rend() = b
*--rend() = a
y x c
list::resize (STL/CLR)
Ändrar antalet element.
Syntax
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Parametrar
new_size
Ny storlek på den kontrollerade sekvensen.
val
Värdet för utfyllnadselementet.
Anmärkningar
Medlemsfunktionerna ser båda till att lista::storlek (STL/CLR)() returnerar hädanefter new_size. Om den måste göra den kontrollerade sekvensen längre lägger den första medlemsfunktionen till element med värdet value_type(), medan den andra medlemsfunktionen lägger till element med värdet val. För att göra den kontrollerade sekvensen kortare raderar båda medlemsfunktionerna effektivt det sista elementet lista::storlek (STL/CLR)() -new_size gånger. Du använder den för att se till att den kontrollerade sekvensen har storleken new_sizegenom att antingen trimma eller utfyllnad av den aktuella kontrollerade sekvensen.
Exempel
// cliext_list_resize.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
// construct an empty container and pad with default values
cliext::list<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
c1.resize(4);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// resize to empty
c1.resize(0);
System::Console::WriteLine("size() = {0}", c1.size());
// resize and pad
c1.resize(5, L'x');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0 0
size() = 0
x x x x x
list::reverse (STL/CLR)
Vänder den kontrollerade sekvensen.
Syntax
void reverse();
Anmärkningar
Medlemsfunktionen ändrar ordningen på alla element i den kontrollerade sekvensen. Du använder den för att visa en lista över element.
Exempel
// cliext_list_reverse.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// reverse and redisplay
c1.reverse();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
c b a
list::reverse_iterator (STL/CLR)
Typen av omvänd iterator för den kontrollerade sekvensen.
Syntax
typedef T3 reverse_iterator;
Anmärkningar
Typen beskriver ett objekt av ospecificerad typ T3 som kan fungera som omvänd iterator för den kontrollerade sekvensen.
Exempel
// cliext_list_reverse_iterator.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::list<wchar_t>::reverse_iterator rit = c1.rbegin();
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
// alter first element and redisplay
rit = c1.rbegin();
*rit = L'x';
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
return (0);
}
c b a
x b a
list::size (STL/CLR)
Räknar antalet element.
Syntax
size_type size();
Anmärkningar
Medlemsfunktionen returnerar längden på den kontrollerade sekvensen. Du använder den för att fastställa antalet element som för närvarande finns i den kontrollerade sekvensen. Om allt du bryr dig om är om sekvensen har en icke-nollstorlek kan du läsa lista::empty (STL/CLR)().
Exempel
// cliext_list_size.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0} after clearing", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 0 after clearing
size() = 2 after adding 2
list::size_type (STL/CLR)
Typen av ett signerat avstånd mellan två element.
Syntax
typedef int size_type;
Anmärkningar
Typen beskriver ett icke-negativt elementantal.
Exempel
// cliext_list_size_type.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::list<wchar_t>::size_type diff = 0;
for (cliext::list<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it)
++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
list::sort (STL/CLR)
Beställer den kontrollerade sekvensen.
Syntax
void sort();
template<typename Pred2>
void sort(Pred2 pred);
Parametrar
före
Jämförelse för elementpar.
Anmärkningar
Den första medlemsfunktionen ordnar om elementen i den kontrollerade sekvensen så att de sorteras efter operator< – elementen minskar inte i värde när du går igenom sekvensen. Du använder den här medlemsfunktionen för att sortera sekvensen i ökande ordning.
Den andra medlemsfunktionen fungerar på samma sätt som den första, förutom att sekvensen ordnas efter pred -- pred(X, Y) är false för alla element X som följer elementet Y i den resulterande sekvensen. Du använder den för att sortera sekvensen i en ordning som du anger efter en predikatfunktion eller ett ombud.
Båda funktionerna utför en stabil sortering – inga elementpar i den ursprungliga kontrollerade sekvensen är omvända i den resulterande kontrollerade sekvensen.
Exempel
// cliext_list_sort.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// sort descending and redisplay
c1.sort(cliext::greater<wchar_t>());
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// sort ascending and redisplay
c1.sort();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
c b a
a b c
list::splice (STL/CLR)
Restitch-länkar mellan noder.
Syntax
void splice(iterator where, list<Value>% right);
void splice(iterator where, list<Value>% right,
iterator first);
void splice(iterator where, list<Value>% right,
iterator first, iterator last);
Parametrar
första
Början av intervallet att skarva.
senaste
Slutet av intervallet som ska skarvas.
rätt
Container att skarva från.
där
Var i containern som ska skarvas innan.
Anmärkningar
Den första medlemsfunktionen infogar sekvensen som styrs av höger innan elementet i den kontrollerade sekvensen pekas på av där. Den tar också bort alla element från höger. (%right får inte vara lika med this.) Du använder den för att dela upp alla en lista i en annan.
Den andra medlemsfunktionen tar bort elementet som pekas på av första i sekvensen som styrs av höger och infogar det före elementet i den kontrollerade sekvensen som pekas på av där. (Om where==first||where== ++firstsker ingen ändring.) Du använder den för att skarva ett enda element i en lista i en annan.
Den tredje medlemsfunktionen infogar underordningen som anges av [first, last) från sekvensen som styrs av höger innan elementet i den kontrollerade sekvensen pekas på av där. Den tar också bort den ursprungliga underordningen från sekvensen som styrs av höger. (Om right == thisfår intervallet [first, last) inte innehålla elementet som pekas på av där.) Du använder den för att skarva en delmängd av noll eller flera element från en lista till en annan.
Exempel
// cliext_list_splice.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// splice to a new list
cliext::list<wchar_t> c2;
c2.splice(c2.begin(), c1);
System::Console::WriteLine("c1.size() = {0}", c1.size());
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// return one element
c1.splice(c1.end(), c2, c2.begin());
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// return remaining elements
c1.splice(c1.begin(), c2, c2.begin(), c2.end());
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("c2.size() = {0}", c2.size());
return (0);
}
a b c
c1.size() = 0
a b c
a
b c
b c a
c2.size() = 0
list::swap (STL/CLR)
Växlar innehållet i två containrar.
Syntax
void swap(list<Value>% right);
Parametrar
rätt
Container att växla innehåll med.
Anmärkningar
Medlemsfunktionen växlar de kontrollerade sekvenserna mellan *this och höger. Det gör det i konstant tid och det genererar inga undantag. Du använder det som ett snabbt sätt att utbyta innehållet i två containrar.
Exempel
// cliext_list_swap.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct another container with repetition of values
cliext::list<wchar_t> c2(5, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// swap and redisplay
c1.swap(c2);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
x x x x x
x x x x x
a b c
list::to_array (STL/CLR)
Kopierar den kontrollerade sekvensen till en ny matris.
Syntax
cli::array<Value>^ to_array();
Anmärkningar
Medlemsfunktionen returnerar en matris som innehåller den kontrollerade sekvensen. Du använder den för att hämta en kopia av den kontrollerade sekvensen i matrisform.
Exempel
// cliext_list_to_array.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push_back(L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
list::unique (STL/CLR)
Tar bort intilliggande element som klarar ett angivet test.
Syntax
void unique();
template<typename Pred2>
void unique(Pred2 pred);
Parametrar
före
Jämförelse för elementpar.
Anmärkningar
Den första medlemsfunktionen tar bort från den kontrollerade sekvensen (raderar) varje element som jämförs med dess föregående element – om elementet X föregår elementet Y och X == Ytar medlemsfunktionen bort Y. Du använder den för att ta bort alla utom en kopia av varje delmängd av intilliggande element som jämför lika. Observera att om den kontrollerade sekvensen sorteras, till exempel genom att anropa lista::sort (STL/CLR)()lämnar medlemsfunktionen endast element med unika värden. (Därav namnet).
Den andra medlemsfunktionen fungerar på samma sätt som den första, förutom att den tar bort varje element Y efter ett element X som pred(X, Y). Du använder den för att ta bort alla utom en kopia av varje delmängd av intilliggande element som uppfyller en predikatfunktion eller ombud som du anger. Observera att om den kontrollerade sekvensen sorteras, till exempel genom att anropa sort(pred), lämnar medlemsfunktionen endast element som inte har motsvarande ordning med andra element.
Exempel
// cliext_list_unique.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display contents after unique
cliext::list<wchar_t> c2(c1);
c2.unique();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display contents after unique(not_equal_to)
c2 = c1;
c2.unique(cliext::not_equal_to<wchar_t>());
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a a b c
a b c
a a
list::value_type (STL/CLR)
Typ av element.
Syntax
typedef Value value_type;
Anmärkningar
Typen är synonym för mallparametern Value.
Exempel
// cliext_list_value_type.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using value_type
for (cliext::list<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it)
{ // store element in value_type object
cliext::list<wchar_t>::value_type val = *it;
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
operator!= (lista) (STL/CLR)
Visa en lista som inte är lika med jämförelse.
Syntax
template<typename Value>
bool operator!=(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(left == right). Du använder den för att testa om vänstra inte sorteras på samma sätt som höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_ne.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
operator< (lista) (STL/CLR)
Visa en lista som är mindre än jämförelse.
Syntax
template<typename Value>
bool operator<(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar sant om, för den lägsta positionen i för vilken !(right[i] < left[i]) är det också sant att left[i] < right[i]. Annars returneras left->size() < right->size() Du använder den för att testa om vänstra ordnas innan höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_lt.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<= (lista) (STL/CLR)
Visa en lista som är mindre än eller lika med jämförelse.
Syntax
template<typename Value>
bool operator<=(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(right < left). Du använder den för att testa om vänstra inte ordnas efter höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_le.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator== (lista) (STL/CLR)
Visa en lista med samma jämförelse.
Syntax
template<typename Value>
bool operator==(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar endast sant om sekvenserna som styrs av vänstra och höger har samma längd och för varje position ileft[i] ==right[i]. Du använder den för att testa om vänstra sorteras på samma sätt som höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_eq.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator> (lista) (STL/CLR)
Lista som är större än jämförelse.
Syntax
template<typename Value>
bool operator>(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar right<left. Du använder den för att testa om vänstra ordnas efter höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_gt.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>= (lista) (STL/CLR)
Visa en lista som är större än eller lika med jämförelsen.
Syntax
template<typename Value>
bool operator>=(list<Value>% left,
list<Value>% right);
Parametrar
vänster
Vänster container att jämföra.
rätt
Rätt container att jämföra.
Anmärkningar
Operatorfunktionen returnerar !(left<right). Du använder den för att testa om vänstra inte ordnas innan höger när de två listorna jämförs element för element.
Exempel
// cliext_list_operator_ge.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::list<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False