Anteckning
Å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.
Beskriver ett objekt som styr en sekvens med varierande längd av element. Sekvensen lagras som en singly-länkad lista över noder som var och en innehåller en medlem av typen Type.
Syntax
template <class Type,
class Allocator = allocator<Type>>
class forward_list
Parameterar
Type
Den elementdatatyp som ska lagras i forward_list.
Allocator
Det lagrade allokeringsobjektet som kapslar in information om forward_list allokering och frigöring av minne. Den här parametern är valfri. Standardvärdet är allokeraren<Type>.
Anmärkningar
Ett forward_list objekt allokerar och frigör lagring för den sekvens som det styr genom ett lagrat objekt i klassen Allocator som är baserat på allocator klass (kallas ofta std::allocator). Mer information finns i Allokerare. Ett allokeringsobjekt måste ha samma externa gränssnitt som ett objekt av typen allocator.
Anmärkning
Det lagrade allokeringsobjektet kopieras inte när containerobjektet tilldelas.
Iteratorer, pekare och referenser kan bli ogiltiga när element i deras kontrollerade sekvens raderas via forward_list. Infogningar och skarvar som utförs på den kontrollerade sekvensen genom forward_list ogiltigförklarar inte iteratorer.
Tillägg till den kontrollerade sekvensen kan ske genom anrop till forward_list::insert_after, vilket är den enda medlemsfunktionen som anropar konstruktorn Type(const T&).
forward_list kan också anropa flyttkonstruktorer. Om ett sådant uttryck utlöser ett undantag infogar containerobjektet inga nya element och återaktiver undantaget. Därför lämnas ett objekt av typen forward_list i ett känt tillstånd när sådana undantag inträffar.
Medlemmar
Konstruktörer
| Namn | Beskrivning |
|---|---|
forward_list |
Konstruerar ett objekt av typen forward_list. |
Typedefs
| Namn | Beskrivning |
|---|---|
allocator_type |
En typ som representerar allokeringsklassen för ett objekt i en vidarebefordranlista. |
const_iterator |
En typ som ger en konstant iterator för listan över vidarebefordran. |
const_pointer |
En typ som ger en pekare till ett const element i en framåtriktad lista. |
const_reference |
En typ som ger en konstant referens till ett element i listan över vidarebefordran. |
difference_type |
En signerad heltalstyp som kan användas för att representera antalet element i en framåtriktad lista i ett intervall mellan element som iteratorer pekar på. |
iterator |
En typ som tillhandahåller en iterator för listan över vidarebefordran. |
pointer |
En typ som ger en pekare till ett element i listan framåt. |
reference |
En typ som ger en referens till ett element i listan över vidarebefordran. |
size_type |
En typ som representerar det osignerade avståndet mellan två element. |
value_type |
En typ som representerar den typ av element som lagras i en vidarebefordranlista. |
Funktionen
| Namn | Beskrivning |
|---|---|
assign |
Raderar element från en framåtriktad lista och kopierar en ny uppsättning element till en framåtriktad mållista. |
before_begin |
Returnerar en iterator som adresserar positionen före det första elementet i en vidarebefordranlista. |
begin |
Returnerar en iterator som adresserar det första elementet i en vidarebefordranlista. |
cbefore_begin |
Returnerar en const iterator som adresserar positionen före det första elementet i en vidarebefordranlista. |
cbegin |
Returnerar en const-iterator som adresserar det första elementet i en vidarebefordranlista. |
cend |
Returnerar en const-iterator som adresserar platsen som lyckades med det sista elementet i en vidarebefordranlista. |
clear |
Raderar alla element i en framåtriktad lista. |
emplace_after |
Flytta konstruerar ett nytt element efter en angiven position. |
emplace_front |
Lägger till ett element som skapats på plats i början av listan. |
empty |
Testar om en vidarebefordrad lista är tom. |
end |
Returnerar en iterator som adresserar platsen som lyckas med det sista elementet i en vidarebefordranlista. |
erase_after |
Tar bort element från listan framåt efter en angiven position. |
front |
Returnerar en referens till det första elementet i en vidarebefordranlista. |
get_allocator |
Returnerar en kopia av allokeringsobjektet som används för att skapa en vidarebefordrad lista. |
insert_after |
Lägger till element i listan framåt efter en angiven position. |
max_size |
Returnerar den maximala längden för en vidarebefordrad lista. |
merge |
Tar bort elementen från argumentlistan, infogar dem i listan över framåtriktade mål och beställer den nya kombinerade uppsättningen element i stigande ordning eller i någon annan angiven ordning. |
pop_front |
Tar bort elementet i början av en vidarebefordrad lista. |
push_front |
Lägger till ett element i början av en vidarebefordrningslista. |
remove |
Raderar element i en framåtriktad lista som matchar ett angivet värde. |
remove_if |
Raderar element från en framåtriktad lista som ett angivet predikat är uppfyllt för. |
resize |
Anger en ny storlek för en vidarebefordrningslista. |
reverse |
Ändrar ordningen i vilken elementen förekommer i en framåtriktad lista. |
sort |
Ordnar elementen i stigande ordning eller med en ordning som anges av ett predikat. |
splice_after |
Restitches länkar mellan noder. |
swap |
Utbyter elementen i två framåtriktade listor. |
unique |
Tar bort intilliggande element som klarar ett angivet test. |
Operatörer
| Namn | Beskrivning |
|---|---|
operator= |
Ersätter elementen i listan framåt med en kopia av en annan vidarebefordranlista. |
allocator_type
En typ som representerar allokeringsklassen för ett objekt i en vidarebefordranlista.
typedef Allocator allocator_type;
Anmärkningar
allocator_type är synonymt med mallparametern Allocator.
assign
Raderar element från en framåtriktad lista och kopierar en ny uppsättning element till en framåtriktad mållista.
void assign(
size_type Count,
const Type& Val);
void assign(
initializer_list<Type> IList);
template <class InputIterator>
void assign(InputIterator First, InputIterator Last);
Parameterar
first
Början av ersättningsintervallet.
last
Slutet av ersättningsintervallet.
count
Antalet element som ska tilldelas.
val
Värdet som varje element ska tilldelas.
Type
Typ av värde.
IList
Att initializer_list kopiera.
Anmärkningar
forward_list Om är en heltalstyp fungerar den första medlemsfunktionen på samma sätt som assign((size_type)First, (Type)Last). I annat fall ersätter den första medlemsfunktionen sekvensen som styrs av *this med sekvensen [ First, Last), som inte får överlappa den inledande kontrollerade sekvensen.
Den andra medlemsfunktionen ersätter sekvensen som styrs av *this med en upprepning av Count element av värdet Val.
Den tredje medlemsfunktionen kopierar elementen initializer_list i till forward_list.
before_begin
Returnerar en iterator som adresserar positionen före det första elementet i en vidarebefordranlista.
const_iterator before_begin() const;
iterator before_begin();
Returvärde
En vidarebefordrande iterator som pekar precis före det första elementet i sekvensen (eller precis före slutet av en tom sekvens).
begin
Returnerar en iterator som adresserar det första elementet i en vidarebefordranlista.
const_iterator begin() const;
iterator begin();
Returvärde
En vidarebefordrande iterator som pekar på det första elementet i sekvensen (eller precis utanför slutet av en tom sekvens).
cbefore_begin
Returnerar en const iterator som adresserar positionen före det första elementet i en vidarebefordranlista.
const_iterator cbefore_begin() const;
Returvärde
En vidarebefordrande iterator som pekar precis före det första elementet i sekvensen (eller precis före slutet av en tom sekvens).
cbegin
Returnerar en const iterator som adresserar det första elementet i intervallet.
const_iterator cbegin() const;
Returvärde
En const iterator för vidarebefordran som pekar på det första elementet i intervallet, eller platsen precis utanför slutet av ett tomt intervall (för ett tomt intervall cbegin() == cend()).
Anmärkningar
Med returvärdet för cbeginkan elementen i intervallet inte ändras.
Du kan använda den här medlemsfunktionen i stället för funktionen begin() medlem för att garantera att returvärdet är const_iterator. Vanligtvis används det med nyckelordet auto typavdrag, som du ser i följande exempel. I exemplet bör du överväga att Container vara en ändringsbar (icke-const) container av något slag som stöder begin() och cbegin().
auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator
cend
Returnerar en const iterator som adresserar platsen precis utanför det sista elementet i ett intervall.
const_iterator cend() const;
Returvärde
En iterator för vidarebefordran som pekar precis utanför intervallets slut.
Anmärkningar
cend används för att testa om en iterator har passerat slutet av sitt intervall.
Du kan använda den här medlemsfunktionen i stället för funktionen end() medlem för att garantera att returvärdet är const_iterator. Vanligtvis används det med nyckelordet auto typavdrag, som du ser i följande exempel. I exemplet bör du överväga att Container vara en ändringsbar (icke-const) container av något slag som stöder end() och cend().
auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();
// i2 is Container<T>::const_iterator
Värdet som returneras av cend ska inte derefereras.
clear
Raderar alla element i en framåtriktad lista.
void clear();
Anmärkningar
Den här medlemsfunktionen anropar erase_after(before_begin(), end()).
const_iterator
En typ som ger en konstant iterator för listan över vidarebefordran.
typedef implementation-defined const_iterator;
Anmärkningar
const_iterator beskriver ett objekt som kan fungera som en konstant vidarebefordran iterator för den kontrollerade sekvensen. Det beskrivs här som en synonym för en implementeringsdefinierad typ.
const_pointer
En typ som ger en pekare till ett const element i en framåtriktad lista.
typedef typename Allocator::const_pointer
const_pointer;
const_reference
En typ som ger en konstant referens till ett element i listan över vidarebefordran.
typedef typename Allocator::const_reference const_reference;
difference_type
En signerad heltalstyp som kan användas för att representera antalet element i en framåtriktad lista i ett intervall mellan element som iteratorer pekar på.
typedef typename Allocator::difference_type difference_type;
Anmärkningar
difference_type beskriver ett objekt som kan representera skillnaden mellan adresserna för två element i den kontrollerade sekvensen.
emplace_after
Flytta konstruerar ett nytt element efter en angiven position.
template <class T>
iterator emplace_after(const_iterator Where, Type&& val);
Parameterar
Where
Positionen i listan över framåtriktade mål där det nya elementet konstrueras.
val
Konstruktorargumentet.
Returvärde
En iterator som anger det nyligen infogade elementet.
Anmärkningar
Den här medlemsfunktionen infogar ett element med konstruktorargumenten val strax efter att elementet pekat på Where i den kontrollerade sekvensen. Dess beteende är annars detsamma som forward_list::insert_after.
emplace_front
Lägger till ett element som skapats på plats i början av listan.
template <class Type>
void emplace_front(Type&& val);
Parameterar
val
Elementet har lagts till i början av listan över vidarebefordran.
Anmärkningar
Den här medlemsfunktionen infogar ett element med konstruktorargumenten val i början av den kontrollerade sekvensen.
Om ett undantag utlöses lämnas containern oförändrad och undantaget ändras.
empty
Testar om en vidarebefordrad lista är tom.
bool empty() const;
Returvärde
trueom listan över vidarebefordran är tom; annars . false
end
Returnerar en iterator som adresserar platsen som lyckas med det sista elementet i en vidarebefordranlista.
const_iterator end() const;
iterator end();
Returvärde
En vidarebefordran iterator som pekar precis utanför slutet av sekvensen.
erase_after
Tar bort element från listan framåt efter en angiven position.
iterator erase_after(const_iterator Where);
iterator erase_after(const_iterator first, const_iterator last);
Parameterar
Where
Positionen i listan över framåtriktade mål där elementet raderas.
first
Början av intervallet som ska raderas.
last
Slutet av intervallet som ska raderas.
Returvärde
En iterator som anger det första elementet som återstår utöver alla element som tas bort, eller forward_list::end om det inte finns något sådant element.
Anmärkningar
Den första medlemsfunktionen tar bort elementet i den kontrollerade sekvensen strax efter Where.
Den andra medlemsfunktionen tar bort elementen i den kontrollerade sekvensen i intervallet ( first, last) (ingen av slutpunkterna ingår).
Radering av N element orsakar N destrueringsanrop.
Omfördelning sker, så iteratorer och referenser blir ogiltiga för de borttagna elementen.
Medlemsfunktionerna utlöser aldrig ett undantag.
forward_list
Konstruerar ett objekt av typen forward_list.
forward_list();
explicit forward_list(const Allocator& Al);
explicit forward_list(size_type Count);
forward_list(size_type Count, const Type& Val);
forward_list(size_type Count, const Type& Val, const Allocator& Al);
forward_list(const forward_list& Right);
forward_list(const forward_list& Right, const Allocator& Al);
forward_list(forward_list&& Right);
forward_list(forward_list&& Right, const Allocator& Al);
forward_list(initializer_list<Type> IList, const Alloc& Al);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last, const Allocator& Al);
Parameterar
Al
Allokeringsklassen som ska användas med det här objektet.
Count
Antalet element i listan som skapats.
Val
Värdet för elementen i listan som skapats.
Right
Listan som den konstruerade listan ska vara en kopia av.
First
Positionen för det första elementet i området med element som ska kopieras.
Last
Positionen för det första elementet utöver det område av element som ska kopieras.
IList
Att initializer_list kopiera.
Anmärkningar
Alla konstruktorer lagrar en allocator och initierar den kontrollerade sekvensen. Allokeringsobjektet är argumentet Al, om det finns. För kopieringskonstruktorn är right.get_allocator()det . Annars är det Allocator().
De två första konstruktorerna anger en tom inledande kontrollerad sekvens.
Den tredje konstruktorn anger en upprepning av Count element av värdet Type().
De fjärde och femte konstruktorerna anger en upprepning av Count element av värdet Val.
Den sjätte konstruktorn anger en kopia av sekvensen som styrs av Höger. Om InputIterator är en heltalstyp anger nästa två konstruktorer en upprepning av (size_type)First element av värdet (Type)Last. I annat fall anger följande två konstruktorer sekvensen [First, Last).
De nionde och tionde konstruktorerna är samma som den sjätte, men med en rvalue-referens .
Den sista konstruktorn anger den inledande kontrollerade sekvensen med ett objekt av klassen initializer_list<Type>.
front
Returnerar en referens till det första elementet i en vidarebefordranlista.
reference front();
const_reference front() const;
Returvärde
En referens till det första elementet i den kontrollerade sekvensen, som måste vara icke-tom.
get_allocator
Returnerar en kopia av allokeringsobjektet som används för att skapa en vidarebefordrad lista.
allocator_type get_allocator() const;
Returvärde
Det lagrade allocator objektet.
insert_after
Lägger till element i listan framåt efter en angiven position.
iterator insert_after(const_iterator Where, const Type& Val);
void insert_after(const_iterator Where, size_type Count, const Type& Val);
void insert_after(const iterator Where, initializer_list<Type> IList);
iterator insert_after(const_iterator Where, Type&& Val);
template <class InputIterator>
void insert_after(const_iterator Where, InputIterator First, InputIterator Last);
Parameterar
Where
Positionen i listan över framåtriktade mål där det första elementet infogas.
Count
Antalet element som ska infogas.
First
Början av insättningsintervallet.
Last
Slutet av insättningsintervallet.
Val
Elementet har lagts till i listan över vidarebefordran.
IList
Infoga initializer_list .
Returvärde
En iterator som anger det nyligen infogade elementet (endast första och sista medlemsfunktionerna).
Anmärkningar
Var och en av medlemsfunktionerna infogas – precis efter att elementet pekats på i Where den kontrollerade sekvensen – en sekvens som anges av de återstående operanderna.
Den första medlemsfunktionen infogar ett element som har ett värde Val och returnerar en iterator som anger det nyligen infogade elementet.
Den andra medlemsfunktionen infogar en upprepning av Count element av värdet Val.
Om InputIterator är en heltalstyp fungerar den tredje medlemsfunktionen på samma sätt som insert(it, (size_type)First, (Type)Last). Annars infogas sekvensen [First, Last), som inte får överlappa den inledande kontrollerade sekvensen.
Den fjärde medlemsfunktionen infogar sekvensen som anges av ett objekt av klassen initializer_list<Type>.
Den sista medlemsfunktionen är samma som den första, men med en rvalue-referens .
Infogning av N element orsakar N konstruktoranrop.
Omlokalisering sker, men inga iteratorer eller referenser blir ogiltiga.
Om ett undantag utlöses under infogningen av ett eller flera element lämnas containern oförändrad och undantaget ändras.
iterator
En typ som tillhandahåller en iterator för listan över vidarebefordran.
typedef implementation-defined iterator;
Anmärkningar
iterator beskriver ett objekt som kan fungera som en vidarebefordran iterator för den kontrollerade sekvensen. Det beskrivs här som en synonym för en implementeringsdefinierad typ.
max_size
Returnerar den maximala längden för en vidarebefordrad lista.
size_type max_size() const;
Returvärde
Längden på den längsta sekvens som objektet kan styra.
merge
Kombinerar två sorterade sekvenser i en enda sorterad sekvens i linjär tid. Tar bort elementen från argumentlistan och infogar dem i den här forward_list. De två listorna ska sorteras efter samma jämförelsefunktionsobjekt innan anropet till merge. Den kombinerade listan sorteras efter det jämför funktionsobjektet.
void merge(forward_list& right);
template <class Predicate>
void merge(forward_list& right, Predicate comp);
Parameterar
right
Listan över vidarebefordran som ska sammanfogas från.
comp
Jämför funktionsobjektet som används för att sortera element.
Anmärkningar
forward_list::merge tar bort elementen forward_listrightfrån och infogar dem i den här forward_list. Båda sekvenserna måste sorteras efter samma predikat, som beskrivs nedan. Den kombinerade sekvensen sorteras också efter det jämför funktionsobjektet.
För iteratorerna Pi och Pj att utse element vid positioner i och j, lägger den första medlemsfunktionen ordningen !(*Pj < *Pi) när i < j. (Elementen sorteras i ascending ordning.) Den andra medlemsfunktionen tillämpar ordningen ! comp(*Pj, *Pi) när i < j.
Inga elementpar i den ursprungliga kontrollerade sekvensen ångras i den resulterande kontrollerade sekvensen. Om ett par element i den resulterande kontrollerade sekvensen jämförs lika med (!(*Pi < *Pj) && !(*Pj < *Pi)), visas ett element från den ursprungliga kontrollerade sekvensen före ett element från sekvensen som styrs av right.
Ett undantag inträffar endast om comp ett undantag genereras. I så fall lämnas den kontrollerade sekvensen i ospecificerad ordning och undantaget är återväxt.
operator=
Ersätter elementen i listan framåt med en kopia av en annan vidarebefordranlista.
forward_list& operator=(const forward_list& right);
forward_list& operator=(initializer_list<Type> IList);
forward_list& operator=(forward_list&& right);
Parameterar
right
Listan över vidarebefordran som kopieras till listan över vidarebefordran.
IList
En klammerparentessluten initialiserarlista som fungerar precis som en sekvens av element av typen Type.
Anmärkningar
Den första medlemsoperatorn ersätter den kontrollerade sekvensen med en kopia av sekvensen som styrs av right.
Den andra medlemsoperatorn ersätter den kontrollerade sekvensen från ett objekt av klassen initializer_list<Type>.
Den tredje medlemsoperatorn är samma som den första, men med en rvalue-referens .
pointer
En typ som ger en pekare till ett element i listan framåt.
typedef typename Allocator::pointer pointer;
pop_front
Tar bort elementet i början av en vidarebefordrad lista.
void pop_front();
Anmärkningar
Det första elementet i listan över vidarebefordran måste vara tomt.
Medlemsfunktionen utlöser aldrig ett undantag.
push_front
Lägger till ett element i början av en vidarebefordrningslista.
void push_front(const Type& val);
void push_front(Type&& val);
Parameterar
val
Elementet har lagts till i början av listan över vidarebefordran.
Anmärkningar
Om ett undantag utlöses lämnas containern oförändrad och undantaget ändras.
reference
En typ som ger en referens till ett element i listan över vidarebefordran.
typedef typename Allocator::reference reference;
remove
Raderar element i en framåtriktad lista som matchar ett angivet värde.
void remove(const Type& val);
Parameterar
val
Värdet som, om det innehas av ett element, resulterar i att elementet tas bort från listan.
Anmärkningar
Medlemsfunktionen tar bort alla element från den kontrollerade sekvensen, som anges av iteratorn P, för vilka *P == val.
Medlemsfunktionen utlöser aldrig ett undantag.
remove_if
Raderar element från en framåtriktad lista som ett angivet predikat är uppfyllt för.
template <class Predicate>
void remove_if(Predicate pred);
Parameterar
pred
Det unary predikat som, om det uppfylls av ett element, resulterar i att elementet tas bort från listan.
Anmärkningar
Medlemsfunktionen tar bort alla element från den kontrollerade sekvensen, som anges av iteratorn P, för vilket pred(*P) är sant.
Ett undantag inträffar endast om pred ett undantag genereras. I så fall lämnas den kontrollerade sekvensen i ett ospecificerat tillstånd och undantaget är återväxt.
resize
Anger en ny storlek för en vidarebefordrningslista.
void resize(size_type _Newsize);
void resize(size_type _Newsize, const Type& val);
Parameterar
_Newsize
Antalet element i listan över ändrade vidarebefordran.
val
Värdet som ska användas för utfyllnad.
Anmärkningar
Medlemsfunktionerna säkerställer båda att antalet element i listan hädanefter är _Newsize. Om den måste göra den kontrollerade sekvensen längre lägger den första medlemsfunktionen till element med värdet Type(), medan den andra medlemsfunktionen lägger till element med värdet val. För att göra den kontrollerade sekvensen kortare anropar erase_after(begin() + _Newsize - 1, end())båda medlemsfunktionerna effektivt .
reverse
Ändrar ordningen i vilken elementen förekommer i en framåtriktad lista.
void reverse();
size_type
En typ som representerar det osignerade avståndet mellan två element.
typedef typename Allocator::size_type size_type;
Anmärkningar
Den osignerade heltalstypen beskriver ett objekt som kan representera längden på valfri kontrollerad sekvens.
sort
Ordnar elementen i stigande ordning eller med en ordning som anges av ett predikat.
void sort();
template <class Predicate>
void sort(Predicate pred);
Parameterar
pred
Beställningspredikatet.
Anmärkningar
Båda medlemsfunktionerna beställer elementen i den kontrollerade sekvensen efter ett predikat, som beskrivs nedan.
För iteratorerna Pi och Pj att utse element vid positioner i och j, lägger den första medlemsfunktionen ordningen !(*Pj < *Pi) när i < j. (Elementen sorteras i ascending ordning.) Medlemsmallsfunktionen tillämpar ordningen ! pred(*Pj, *Pi) när i < j. Inga ordnade par med element i den ursprungliga kontrollerade sekvensen ångras i den resulterande kontrollerade sekvensen. (Sorteringen är stabil.)
Ett undantag inträffar endast om pred ett undantag genereras. I så fall lämnas den kontrollerade sekvensen i ospecificerad ordning och undantaget är återväxt.
splice_after
Tar bort element från en källa forward_list och infogar dem i ett mål forward_list.
// insert the entire source forward_list
void splice_after(const_iterator Where, forward_list& Source);
void splice_after(const_iterator Where, forward_list&& Source);
// insert one element of the source forward_list
void splice_after(const_iterator Where, forward_list& Source, const_iterator Iter);
void splice_after(const_iterator Where, forward_list&& Source, const_iterator Iter);
// insert a range of elements from the source forward_list
void splice_after(
const_iterator Where,
forward_list& Source,
const_iterator First,
const_iterator Last);
void splice_after(
const_iterator Where,
forward_list&& Source,
const_iterator First,
const_iterator Last);
Parameterar
Where
Positionen i målet forward_list som ska infogas.
Source
forward_list Källan som ska infogas i målet forward_list.
Iter
Elementet som ska infogas från källan forward_list.
First
Det första elementet i intervallet som ska infogas från källan forward_list.
Last
Den första positionen utanför intervallet som ska infogas från källan forward_list.
Anmärkningar
Det första paret med medlemsfunktioner infogar sekvensen som styrs av Source strax efter elementet i den kontrollerade sekvensen som pekar på av Where. Den tar också bort alla element från Source. (&Source får inte vara lika med this.)
Det andra paret med medlemsfunktioner tar bort elementet strax efter Iter i sekvensen som styrs av Source och infogar det strax efter elementet i den kontrollerade sekvensen som pekar på av Where. (Om Where == Iter || Where == ++Itersker ingen ändring.)
Det tredje paret med medlemsfunktioner (ranged splice) infogar det underområde som anges av (First, Last) från sekvensen som styrs av Source strax efter att elementet i den kontrollerade sekvensen som pekas på av Where. Den tar också bort den ursprungliga underordningen från sekvensen som styrs av Source. (Om &Source == thisfår intervallet (First, Last) inte innehålla elementet som pekas på av Where.)
Om den intervallfördelade splicen infogar N element och &Source != this, ökas iterator ett klassobjekt N gånger.
Inga iteratorer, pekare eller referenser som anger skarvade element blir ogiltiga.
Exempel
// forward_list_splice_after.cpp
// compile with: /EHsc /W4
#include <forward_list>
#include <iostream>
using namespace std;
template <typename S> void print(const S& s) {
for (const auto& p : s) {
cout << "(" << p << ") ";
}
cout << endl;
}
int main()
{
forward_list<int> c1{ 10, 11 };
forward_list<int> c2{ 20, 21, 22 };
forward_list<int> c3{ 30, 31 };
forward_list<int> c4{ 40, 41, 42, 43 };
forward_list<int>::iterator where_iter;
forward_list<int>::iterator first_iter;
forward_list<int>::iterator last_iter;
cout << "Beginning state of lists:" << endl;
cout << "c1 = ";
print(c1);
cout << "c2 = ";
print(c2);
cout << "c3 = ";
print(c3);
cout << "c4 = ";
print(c4);
where_iter = c2.begin();
++where_iter; // start at second element
c2.splice_after(where_iter, c1);
cout << "After splicing c1 into c2:" << endl;
cout << "c1 = ";
print(c1);
cout << "c2 = ";
print(c2);
first_iter = c3.begin();
c2.splice_after(where_iter, c3, first_iter);
cout << "After splicing the first element of c3 into c2:" << endl;
cout << "c3 = ";
print(c3);
cout << "c2 = ";
print(c2);
first_iter = c4.begin();
last_iter = c4.end();
// set up to get the middle elements
++first_iter;
c2.splice_after(where_iter, c4, first_iter, last_iter);
cout << "After splicing a range of c4 into c2:" << endl;
cout << "c4 = ";
print(c4);
cout << "c2 = ";
print(c2);
}
Beginning state of lists:c1 = (10) (11)c2 = (20) (21) (22)c3 = (30) (31)c4 = (40) (41) (42) (43)After splicing c1 into c2:c1 =c2 = (20) (21) (10) (11) (22)After splicing the first element of c3 into c2:c3 = (30)c2 = (20) (21) (31) (10) (11) (22)After splicing a range of c4 into c2:c4 = (40) (41)c2 = (20) (21) (42) (43) (31) (10) (11) (22)
swap
Utbyter elementen i två framåtriktade listor.
void swap(forward_list& right);
Parameterar
right
Den vidarebefordrande listan som tillhandahåller de element som ska bytas ut.
Anmärkningar
Medlemsfunktionen växlar de kontrollerade sekvenserna mellan *this och right. Om get_allocator() == right.get_allocator(), det gör det i konstant tid, genererar det inga undantag och ogiltigförklarar inga referenser, pekare eller iteratorer som anger element i de två kontrollerade sekvenserna. Annars utför den elementtilldelningar och konstruktoranrop som är proportionella mot antalet element i de två kontrollerade sekvenserna.
unique
Eliminerar alla utom det första elementet från varje på varandra följande grupp med lika många element.
void unique();
template <class BinaryPredicate>
void unique(BinaryPredicate comp);
Parameterar
comp
Det binära predikatet som används för att jämföra efterföljande element.
Anmärkningar
Behåller det första av varje unikt element och tar bort resten. Elementen måste sorteras så att element med samma värde ligger intill varandra i listan.
Den första medlemsfunktionen tar bort varje element som jämförs med föregående element från den kontrollerade sekvensen. För iteratorerna Pi och Pj designelementen på positioner i och jtar den andra medlemsfunktionen bort varje element för vilket i + 1 == j && comp(*Pi, *Pj).
För en kontrollerad längdsekvens N (> 0) utvärderas comp(*Pi, *Pj) predikatet N - 1 gånger.
Ett undantag inträffar endast om comp ett undantag genereras. I så fall lämnas den kontrollerade sekvensen i ett ospecificerat tillstånd och undantaget är återväxt.
value_type
En typ som representerar den typ av element som lagras i en vidarebefordranlista.
typedef typename Allocator::value_type value_type;
Anmärkningar
Typen är en synonym för mallparametern Type.