Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Beschrijft een object dat een wisselende reeks elementen bepaalt. De reeks wordt opgeslagen als een singly-gekoppelde lijst met knooppunten, elk met een lid van het type Type.
Syntaxis
template <class Type,
class Allocator = allocator<Type>>
class forward_list
Parameterwaarden
Type
Het gegevenstype element dat moet worden opgeslagen in de forward_list.
Allocator
Het opgeslagen allocatorobject dat details bevat over de forward_list toewijzing en toewijzing van het geheugen. Deze parameter is optioneel. De standaardwaarde is allocator<Type>.
Opmerkingen
Een forward_list object wijst en maakt opslag vrij voor de volgorde die het beheert via een opgeslagen object van klasse Allocator dat is gebaseerd op allocator klasse (ook wel bekend als std::allocator). Zie Allocators voor meer informatie. Een allocator-object moet dezelfde externe interface hebben als een object van het type allocator.
Opmerking
Het opgeslagen allocator-object wordt niet gekopieerd wanneer het containerobject wordt toegewezen.
Iterators, aanwijzers en verwijzingen kunnen ongeldig worden wanneer elementen van hun gecontroleerde volgorde worden gewist.forward_list Invoegingen en splices die op de gecontroleerde reeks worden uitgevoerd, forward_list maken iterators niet ongeldig.
Toevoegingen aan de gecontroleerde reeks kunnen optreden door aanroepen naar forward_list::insert_after, wat de enige lidfunctie is die de constructor Type(const T&)aanroept.
forward_list kan ook verplaatsingsconstructors aanroepen. Als een dergelijke expressie een uitzondering genereert, voegt het containerobject geen nieuwe elementen in en wordt de uitzondering opnieuw geplaatst. Een object van het type forward_list blijft dus in een bekende status wanneer dergelijke uitzonderingen optreden.
Leden
Constructeurs
| Naam | Beschrijving |
|---|---|
forward_list |
Maakt een object van het type forward_list. |
Typedefs
| Naam | Beschrijving |
|---|---|
allocator_type |
Een type dat de allocatorklasse vertegenwoordigt voor een doorstuurlijstobject. |
const_iterator |
Een type dat een constante iterator biedt voor de doorstuurlijst. |
const_pointer |
Een type dat een aanwijzer naar een const element in een doorstuurlijst biedt. |
const_reference |
Een type dat een constante verwijzing naar een element in de doorstuurlijst biedt. |
difference_type |
Een ondertekend geheel getaltype dat kan worden gebruikt om het aantal elementen van een doorstuurlijst weer te geven in een bereik tussen elementen waarnaar wordt verwezen door iterators. |
iterator |
Een type dat een iterator biedt voor de doorstuurlijst. |
pointer |
Een type dat een aanwijzer naar een element in de doorstuurlijst biedt. |
reference |
Een type dat een verwijzing naar een element in de doorstuurlijst biedt. |
size_type |
Een type dat de niet-ondertekende afstand tussen twee elementen aangeeft. |
value_type |
Een type dat het type element aangeeft dat is opgeslagen in een doorstuurlijst. |
Functies
| Naam | Beschrijving |
|---|---|
assign |
Hiermee worden elementen uit een doorstuurlijst gewist en wordt een nieuwe set elementen gekopieerd naar een doellijst. |
before_begin |
Retourneert een iterator die de positie adresseert vóór het eerste element in een doorstuurlijst. |
begin |
Retourneert een iterator die het eerste element in een doorstuurlijst aanpakt. |
cbefore_begin |
Retourneert een const iterator die de positie adresseert vóór het eerste element in een doorstuurlijst. |
cbegin |
Retourneert een const iterator die het eerste element in een doorstuurlijst aanpakt. |
cend |
Retourneert een const iterator die de locatie afspreekt die het laatste element in een doorstuurlijst slaagt. |
clear |
Hiermee worden alle elementen van een doorstuurlijst gewist. |
emplace_after |
Hiermee wordt een nieuw element na een opgegeven positie gemaakt. |
emplace_front |
Hiermee voegt u een element toe dat is gebouwd aan het begin van de lijst. |
empty |
Test of een doorstuurlijst leeg is. |
end |
Retourneert een iterator die de locatie adresseert die het laatste element in een doorstuurlijst slaagt. |
erase_after |
Hiermee verwijdert u elementen uit de doorstuurlijst na een opgegeven positie. |
front |
Retourneert een verwijzing naar het eerste element in een doorstuurlijst. |
get_allocator |
Retourneert een kopie van het allocator-object dat wordt gebruikt om een doorstuurlijst samen te stellen. |
insert_after |
Voegt elementen toe aan de doorstuurlijst na een opgegeven positie. |
max_size |
Retourneert de maximale lengte van een doorstuurlijst. |
merge |
Hiermee verwijdert u de elementen uit de lijst met argumenten, voegt u deze in de doelstuurlijst in en rangschikt u de nieuwe, gecombineerde set elementen in oplopende volgorde of in een andere opgegeven volgorde. |
pop_front |
Hiermee verwijdert u het element aan het begin van een doorstuurlijst. |
push_front |
Hiermee voegt u een element toe aan het begin van een doorstuurlijst. |
remove |
Hiermee worden elementen gewist in een doorstuurlijst die overeenkomt met een opgegeven waarde. |
remove_if |
Hiermee worden elementen gewist uit een doorstuurlijst waarvoor aan een opgegeven predicaat wordt voldaan. |
resize |
Hiermee geeft u een nieuwe grootte voor een doorstuurlijst. |
reverse |
Hiermee wordt de volgorde omgekeerd waarin de elementen voorkomen in een doorstuurlijst. |
sort |
Rangschikt de elementen in oplopende volgorde of met een volgorde die is opgegeven door een predicaat. |
splice_after |
Restitches-koppelingen tussen knooppunten. |
swap |
Hiermee worden de elementen van twee doorstuurlijsten uitgewisseld. |
unique |
Hiermee verwijdert u aangrenzende elementen die aan een opgegeven test voldoen. |
Bedieners
| Naam | Beschrijving |
|---|---|
operator= |
Hiermee worden de elementen van de lijst met doorstuurservers vervangen door een kopie van een andere doorstuurlijst. |
allocator_type
Een type dat de allocatorklasse vertegenwoordigt voor een doorstuurlijstobject.
typedef Allocator allocator_type;
Opmerkingen
allocator_type is een synoniem voor de sjabloonparameter Allocator.
assign
Hiermee worden elementen uit een doorstuurlijst gewist en wordt een nieuwe set elementen gekopieerd naar een doellijst.
void assign(
size_type Count,
const Type& Val);
void assign(
initializer_list<Type> IList);
template <class InputIterator>
void assign(InputIterator First, InputIterator Last);
Parameterwaarden
first
Het begin van het vervangingsbereik.
last
Het einde van het vervangingsbereik.
count
Het aantal elementen dat moet worden toegewezen.
val
De waarde om elk element toe te wijzen.
Type
Het type van de waarde.
IList
De initializer_list te kopiëren.
Opmerkingen
Als het forward_list een geheel getal is, gedraagt de eerste lidfunctie zich hetzelfde als assign((size_type)First, (Type)Last). Anders vervangt de eerste lidfunctie de reeks die wordt beheerd door *this de reeks [ First, Last), die de eerste gecontroleerde reeks niet mag overlappen.
De tweede lidfunctie vervangt de reeks die wordt beheerd door *this een herhaling van elementen van Count waarde Val.
Met de functie van het derde lid worden de elementen van de initializer_list functie gekopieerd naar de forward_list.
before_begin
Retourneert een iterator die de positie adresseert vóór het eerste element in een doorstuurlijst.
const_iterator before_begin() const;
iterator before_begin();
Retourwaarde
Een doorstuur iterator die vlak vóór het eerste element van de reeks wijst (of net voor het einde van een lege reeks).
begin
Retourneert een iterator die het eerste element in een doorstuurlijst aanpakt.
const_iterator begin() const;
iterator begin();
Retourwaarde
Een doorstuur iterator die verwijst naar het eerste element van de reeks (of net voorbij het einde van een lege reeks).
cbefore_begin
Retourneert een const iterator die de positie adresseert vóór het eerste element in een doorstuurlijst.
const_iterator cbefore_begin() const;
Retourwaarde
Een doorstuur iterator die vlak vóór het eerste element van de reeks wijst (of net voor het einde van een lege reeks).
cbegin
Retourneert een const iterator die het eerste element in het bereik adresseert.
const_iterator cbegin() const;
Retourwaarde
Een const iterator voor forward-access die verwijst naar het eerste element van het bereik, of de locatie vlak voorbij het einde van een leeg bereik (voor een leeg bereik, cbegin() == cend()).
Opmerkingen
Met de retourwaarde van cbeginkunnen de elementen in het bereik niet worden gewijzigd.
U kunt deze lidfunctie gebruiken in plaats van de functie begin() lid om te garanderen dat de retourwaarde const_iteratoris. Normaal gesproken wordt deze gebruikt met het trefwoord auto type aftrek, zoals wordt weergegeven in het volgende voorbeeld. In het voorbeeld kunt u overwegen Container te zijn als een wijzigbare container (niet-const) van elk type dat ondersteuning biedt voor begin() en cbegin().
auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator
cend
Retourneert een const iterator die de locatie net voorbij het laatste element in een bereik adresseert.
const_iterator cend() const;
Retourwaarde
Een iterator voor doorstuurtoegang die net buiten het einde van het bereik wijst.
Opmerkingen
cend wordt gebruikt om te testen of een iterator het einde van het bereik heeft doorstaan.
U kunt deze lidfunctie gebruiken in plaats van de functie end() lid om te garanderen dat de retourwaarde const_iteratoris. Normaal gesproken wordt deze gebruikt met het trefwoord auto type aftrek, zoals wordt weergegeven in het volgende voorbeeld. In het voorbeeld kunt u overwegen Container te zijn als een wijzigbare container (niet-const) van elk type dat ondersteuning biedt voor end() en cend().
auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();
// i2 is Container<T>::const_iterator
De waarde die door cend wordt geretourneerd, mag niet worden gededucteerd.
clear
Hiermee worden alle elementen van een doorstuurlijst gewist.
void clear();
Opmerkingen
Deze lidfunctie roept erase_after(before_begin(), end())aan.
const_iterator
Een type dat een constante iterator biedt voor de doorstuurlijst.
typedef implementation-defined const_iterator;
Opmerkingen
const_iterator beschrijft een object dat kan fungeren als een constante doorstuurserver voor de gecontroleerde reeks. Het wordt hier beschreven als een synoniem voor een door de implementatie gedefinieerd type.
const_pointer
Een type dat een aanwijzer naar een const element in een doorstuurlijst biedt.
typedef typename Allocator::const_pointer
const_pointer;
const_reference
Een type dat een constante verwijzing naar een element in de doorstuurlijst biedt.
typedef typename Allocator::const_reference const_reference;
difference_type
Een ondertekend geheel getaltype dat kan worden gebruikt om het aantal elementen van een doorstuurlijst weer te geven in een bereik tussen elementen waarnaar wordt verwezen door iterators.
typedef typename Allocator::difference_type difference_type;
Opmerkingen
difference_type beschrijft een object dat het verschil tussen de adressen van twee elementen in de gecontroleerde reeks kan vertegenwoordigen.
emplace_after
Hiermee wordt een nieuw element na een opgegeven positie gemaakt.
template <class T>
iterator emplace_after(const_iterator Where, Type&& val);
Parameterwaarden
Where
De positie in de doellijst waar het nieuwe element is samengesteld.
val
Het argument constructor.
Retourwaarde
Een iterator die het zojuist ingevoegde element aanwijst.
Opmerkingen
Met deze lidfunctie wordt een element ingevoegd met de constructorargumenten val vlak na het element dat in de gecontroleerde reeks is verwezen Where . Het gedrag is anders hetzelfde als forward_list::insert_after.
emplace_front
Hiermee voegt u een element toe dat is gebouwd aan het begin van de lijst.
template <class Type>
void emplace_front(Type&& val);
Parameterwaarden
val
Het element dat is toegevoegd aan het begin van de doorstuurlijst.
Opmerkingen
Met deze lidfunctie wordt een element ingevoegd met de constructorargumenten val aan het begin van de gecontroleerde reeks.
Als er een uitzondering wordt gegenereerd, blijft de container ongewijzigd en wordt de uitzondering opnieuw geplaatst.
empty
Test of een doorstuurlijst leeg is.
bool empty() const;
Retourwaarde
true als de doorstuurlijst leeg is; anders, false.
end
Retourneert een iterator die de locatie adresseert die het laatste element in een doorstuurlijst slaagt.
const_iterator end() const;
iterator end();
Retourwaarde
Een doorstuur iterator die vlak voorbij het einde van de reeks wijst.
erase_after
Hiermee verwijdert u elementen uit de doorstuurlijst na een opgegeven positie.
iterator erase_after(const_iterator Where);
iterator erase_after(const_iterator first, const_iterator last);
Parameterwaarden
Where
De positie in de doellijst waar het element wordt gewist.
first
Het begin van het bereik dat moet worden gewist.
last
Het einde van het bereik dat moet worden gewist.
Retourwaarde
Een iterator die het eerste element aanwijst dat buiten alle verwijderde elementen blijft, of forward_list::end als er geen dergelijk element bestaat.
Opmerkingen
Met de eerste lidfunctie wordt het element van de gecontroleerde reeks verwijderd vlak na Where.
De tweede lidfunctie verwijdert de elementen van de gecontroleerde reeks in het bereik ( first, last) (geen van beide eindpunten is inbegrepen).
Het wissen van N elementen veroorzaakt N aanroepen van destructor.
Herlocatie vindt plaats, zodat iterators en verwijzingen ongeldig worden voor de gewiste elementen.
De lidfuncties genereren nooit een uitzondering.
forward_list
Maakt een object van het type 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);
Parameterwaarden
Al
De allocatorklasse die met dit object moet worden gebruikt.
Count
Het aantal elementen in de lijst dat is samengesteld.
Val
De waarde van de elementen in de lijst die is samengesteld.
Right
De lijst waarvan de samengestelde lijst een kopie moet zijn.
First
De positie van het eerste element in het bereik van elementen dat moet worden gekopieerd.
Last
De positie van het eerste element buiten het bereik van elementen dat moet worden gekopieerd.
IList
De initializer_list te kopiëren.
Opmerkingen
Alle constructors slaan een allocator gecontroleerde reeks op en initialiseren deze. Het allocatorobject is het argument Al, indien aanwezig. Voor de kopieerconstructor is het right.get_allocator(). Anders is het Allocator().
De eerste twee constructors geven een lege initiële gecontroleerde reeks op.
De derde constructor geeft een herhaling van elementen van Count waarde Type().
De vierde en vijfde constructors geven een herhaling van Count elementen van waarde Valop.
De zesde constructor geeft een kopie van de reeks die wordt beheerd door Right. Als InputIterator dit een geheel getal is, geven de volgende twee constructors een herhaling van de elementen van (size_type)First de waarde (Type)Lastop. Anders geven de volgende twee constructors de reeks [First, Last)op.
De negende en tiende constructors zijn hetzelfde als de zesde, maar met een rvalue-verwijzing .
De laatste constructor geeft de initiële gecontroleerde reeks aan met een object van klasse initializer_list<Type>.
front
Retourneert een verwijzing naar het eerste element in een doorstuurlijst.
reference front();
const_reference front() const;
Retourwaarde
Een verwijzing naar het eerste element van de gecontroleerde reeks, die niet leeg moet zijn.
get_allocator
Retourneert een kopie van het allocator-object dat wordt gebruikt om een doorstuurlijst samen te stellen.
allocator_type get_allocator() const;
Retourwaarde
Het opgeslagen allocator object.
insert_after
Voegt elementen toe aan de doorstuurlijst na een opgegeven positie.
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);
Parameterwaarden
Where
De positie in de doel forward-lijst waar het eerste element wordt ingevoegd.
Count
Het aantal elementen dat moet worden ingevoegd.
First
Het begin van het invoegbereik.
Last
Het einde van het invoegbereik.
Val
Het element dat is toegevoegd aan de doorstuurlijst.
IList
De initializer_list te invoegen.
Retourwaarde
Een iterator die het zojuist ingevoegde element aanwijst (alleen voor het eerste en laatste lid).
Opmerkingen
Elk van de lidfuncties wordt ingevoegd, net nadat het element in de gecontroleerde volgorde heeft verwezen Where , een reeks die is opgegeven door de resterende operanden.
Met de eerste lidfunctie wordt een element ingevoegd dat een waarde Val bevat en wordt een iterator geretourneerd die het zojuist ingevoegde element aanwijst.
Met de functie tweede lid wordt een herhaling ingevoegd van Count elementen van waarde Val.
Als InputIterator een geheel getal is, gedraagt de functie van het derde lid zich hetzelfde als insert(it, (size_type)First, (Type)Last). Anders wordt de reeks [First, Last)ingevoegd, die de eerste gecontroleerde reeks niet mag overlappen.
Met de vierde lidfunctie wordt de reeks ingevoegd die is opgegeven door een object van klasse initializer_list<Type>.
De laatste lidfunctie is hetzelfde als de eerste, maar met een rvalue-verwijzing .
Het invoegen van N elementen veroorzaakt N constructor-aanroepen.
Herlocatie vindt plaats, maar er worden geen iterators of verwijzingen ongeldig.
Als er een uitzondering wordt gegenereerd tijdens het invoegen van een of meer elementen, blijft de container ongewijzigd en wordt de uitzondering opnieuw geplaatst.
iterator
Een type dat een iterator biedt voor de doorstuurlijst.
typedef implementation-defined iterator;
Opmerkingen
iterator beschrijft een object dat kan fungeren als doorstuurserver voor de gecontroleerde reeks. Het wordt hier beschreven als een synoniem voor een door de implementatie gedefinieerd type.
max_size
Retourneert de maximale lengte van een doorstuurlijst.
size_type max_size() const;
Retourwaarde
De lengte van de langste reeks die het object kan beheren.
merge
Combineert twee gesorteerde reeksen in één gesorteerde reeks in lineaire tijd. Hiermee verwijdert u de elementen uit de lijst met argumenten en voegt u deze in.forward_list De twee lijsten moeten worden gesorteerd op hetzelfde functieobject vergelijken voordat de aanroep naar merge. De gecombineerde lijst wordt gesorteerd op dat functieobject vergelijken.
void merge(forward_list& right);
template <class Predicate>
void merge(forward_list& right, Predicate comp);
Parameterwaarden
right
De lijst met doorstuurservers waaruit u wilt samenvoegen.
comp
Het functieobject vergelijken dat wordt gebruikt om elementen te sorteren.
Opmerkingen
forward_list::merge verwijdert de elementen uit de forward_listrighten voegt deze in dit forward_listelement in. Beide reeksen moeten worden gerangschikt op hetzelfde predicaat, zoals hieronder wordt beschreven. De gecombineerde reeks wordt ook geordend door dat functieobject vergelijken.
Voor de iterators Pi en Pj het toewijzen van elementen op posities i en j, legt de eerste lidfunctie de volgorde !(*Pj < *Pi) op wanneer i < j. (De elementen worden op volgorde gesorteerd ascending .) De functie tweede lid legt de volgorde ! comp(*Pj, *Pi) op wanneer i < j.
Er worden geen paren elementen in de oorspronkelijke gecontroleerde reeks omgekeerd in de resulterende gecontroleerde reeks. Als een paar elementen in de resulterende gecontroleerde reeks gelijk vergelijkt (!(*Pi < *Pj) && !(*Pj < *Pi)), wordt een element uit de oorspronkelijke gecontroleerde reeks weergegeven vóór een element van de reeks die wordt beheerd door right.
Een uitzondering treedt alleen op als comp er een uitzondering wordt gegenereerd. In dat geval wordt de gecontroleerde reeks in niet-gespecificeerde volgorde achtergelaten en wordt de uitzondering opnieuw geworpen.
operator=
Hiermee worden de elementen van de lijst met doorstuurservers vervangen door een kopie van een andere doorstuurlijst.
forward_list& operator=(const forward_list& right);
forward_list& operator=(initializer_list<Type> IList);
forward_list& operator=(forward_list&& right);
Parameterwaarden
right
De doorstuurlijst die naar de doorstuurlijst wordt gekopieerd.
IList
Een accolade-ingesloten initialisatielijst, die zich gedraagt als een reeks elementen van het type Type.
Opmerkingen
De eerste lidoperator vervangt de gecontroleerde reeks door een kopie van de reeks die wordt beheerd door right.
De tweede lidoperator vervangt de gecontroleerde reeks van een object van klasse initializer_list<Type>.
De operator van het derde lid is hetzelfde als de eerste, maar met een rvalue-verwijzing .
pointer
Een type dat een aanwijzer naar een element in de doorstuurlijst biedt.
typedef typename Allocator::pointer pointer;
pop_front
Hiermee verwijdert u het element aan het begin van een doorstuurlijst.
void pop_front();
Opmerkingen
Het eerste element van de doorstuurlijst moet niet leeg zijn.
De lidfunctie genereert nooit een uitzondering.
push_front
Hiermee voegt u een element toe aan het begin van een doorstuurlijst.
void push_front(const Type& val);
void push_front(Type&& val);
Parameterwaarden
val
Het element dat is toegevoegd aan het begin van de doorstuurlijst.
Opmerkingen
Als er een uitzondering wordt gegenereerd, blijft de container ongewijzigd en wordt de uitzondering opnieuw geplaatst.
reference
Een type dat een verwijzing naar een element in de doorstuurlijst biedt.
typedef typename Allocator::reference reference;
remove
Hiermee worden elementen gewist in een doorstuurlijst die overeenkomt met een opgegeven waarde.
void remove(const Type& val);
Parameterwaarden
val
De waarde die, indien vastgehouden door een element, resulteert in het verwijderen van dat element uit de lijst.
Opmerkingen
De lidfunctie verwijdert alle elementen uit de gecontroleerde reeks, aangewezen door de iterator P, waarvoor *P == val.
De lidfunctie genereert nooit een uitzondering.
remove_if
Hiermee worden elementen gewist uit een doorstuurlijst waarvoor aan een opgegeven predicaat wordt voldaan.
template <class Predicate>
void remove_if(Predicate pred);
Parameterwaarden
pred
Het unaire predicaat dat, indien voldaan door een element, resulteert in het verwijderen van dat element uit de lijst.
Opmerkingen
De lidfunctie verwijdert alle elementen uit de gecontroleerde reeks, aangeduid door de iterator P, waarvoor pred(*P) waar is.
Een uitzondering treedt alleen op als pred er een uitzondering wordt gegenereerd. In dat geval wordt de gecontroleerde reeks in een niet-opgegeven status achtergelaten en wordt de uitzondering opnieuw geworpen.
resize
Hiermee geeft u een nieuwe grootte voor een doorstuurlijst.
void resize(size_type _Newsize);
void resize(size_type _Newsize, const Type& val);
Parameterwaarden
_Newsize
Het aantal elementen in de lijst met aangepaste doorstuurservers.
val
De waarde die moet worden gebruikt voor opvulling.
Opmerkingen
Het lid werkt beide ervoor dat het aantal elementen in de lijst voortaan is _Newsize. Als deze de gecontroleerde reeks langer moet maken, voegt de eerste lidfunctie elementen met waarde Type()toe, terwijl de tweede lidfunctie elementen met waarde valtoevoegt. Om de gecontroleerde reeks korter te maken, roepen beide lidfuncties effectief aan erase_after(begin() + _Newsize - 1, end()).
reverse
Hiermee wordt de volgorde omgekeerd waarin de elementen voorkomen in een doorstuurlijst.
void reverse();
size_type
Een type dat de niet-ondertekende afstand tussen twee elementen aangeeft.
typedef typename Allocator::size_type size_type;
Opmerkingen
Het niet-ondertekende gehele getaltype beschrijft een object dat de lengte van een gecontroleerde reeks kan vertegenwoordigen.
sort
Rangschikt de elementen in oplopende volgorde of met een volgorde die is opgegeven door een predicaat.
void sort();
template <class Predicate>
void sort(Predicate pred);
Parameterwaarden
pred
Het predicaat ordenen.
Opmerkingen
Beide lidfuncties orden de elementen in de gecontroleerde volgorde op basis van een predicaat, zoals hieronder wordt beschreven.
Voor de iterators Pi en Pj het toewijzen van elementen op posities i en j, legt de eerste lidfunctie de volgorde !(*Pj < *Pi) op wanneer i < j. (De elementen worden op volgorde gesorteerd ascending .) De lidsjabloonfunctie legt de volgorde ! pred(*Pj, *Pi) op wanneer i < j. Er worden geen geordende paar elementen in de oorspronkelijke gecontroleerde reeks omgekeerd in de resulterende gecontroleerde reeks. (De sortering is stabiel.)
Een uitzondering treedt alleen op als pred er een uitzondering wordt gegenereerd. In dat geval wordt de gecontroleerde reeks in niet-gespecificeerde volgorde achtergelaten en wordt de uitzondering opnieuw geworpen.
splice_after
Hiermee verwijdert u elementen uit een bron forward_list en voegt u deze in een bestemming forward_listin.
// 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);
Parameterwaarden
Where
De positie in de bestemming forward_list waarna deze moet worden ingevoegd.
Source
De bron forward_list die in het doel forward_listmoet worden ingevoegd.
Iter
Het element dat moet worden ingevoegd vanuit de bron forward_list.
First
Het eerste element in het bereik dat moet worden ingevoegd vanuit de bron forward_list.
Last
De eerste positie buiten het bereik dat moet worden ingevoegd vanuit de bron forward_list.
Opmerkingen
Met het eerste paar lidfuncties wordt de reeks ingevoegd die wordt beheerd door Source vlak na het element in de gecontroleerde reeks die door wordt verwezen Where. Alle elementen worden ook verwijderd uit Source. (&Source mag niet gelijk zijn thisaan .)
Het tweede paar lidfuncties verwijdert het element net na Iter in de volgorde die wordt beheerd door Source en voegt het in net na het element in de gecontroleerde reeks die Whereerop wijst. (Als Where == Iter || Where == ++Iterer geen wijziging optreedt.)
Met het derde paar lidfuncties (ranged splice) wordt de subrange ingevoegd die is aangewezen door (First, Last) de reeks die wordt bepaald door Source vlak na het element in de gecontroleerde reeks die door wordt verwezen Where. Het verwijdert ook de oorspronkelijke subbereik uit de reeks die wordt beheerd door Source. (Indien &Source == this, mag het bereik (First, Last) het element niet bevatten dat door Where.)
Als de bereik-splice elementen invoegt N en &Source != thiseen object van klasse iterator wordt verhoogd N .
Geen iterators, aanwijzers of verwijzingen die gepliceerde elementen aanwijzen, worden ongeldig.
Voorbeeld
// 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
Hiermee worden de elementen van twee doorstuurlijsten uitgewisseld.
void swap(forward_list& right);
Parameterwaarden
right
De doorstuurlijst bevat de elementen die moeten worden uitgewisseld.
Opmerkingen
De lidfunctie wisselt de gecontroleerde reeksen tussen *this en right. Als get_allocator() == right.get_allocator()dit in constante tijd gebeurt, genereert het geen uitzonderingen en worden er geen verwijzingen, aanwijzers of iterators ongeldig gemaakt die elementen in de twee gecontroleerde sequenties aanwijzen. Anders worden elementtoewijzingen en constructor-aanroepen uitgevoerd die evenredig zijn met het aantal elementen in de twee gecontroleerde reeksen.
unique
Elimineert alle elementen behalve het eerste element uit elke opeenvolgende groep van gelijke elementen.
void unique();
template <class BinaryPredicate>
void unique(BinaryPredicate comp);
Parameterwaarden
comp
Het binaire predicaat dat wordt gebruikt om opeenvolgende elementen te vergelijken.
Opmerkingen
Houdt de eerste van elk uniek element en verwijdert de rest. De elementen moeten worden gesorteerd, zodat elementen van gelijke waarde grenzen aan de lijst.
De eerste lidfunctie verwijdert uit de gecontroleerde volgorde elk element dat gelijk is aan het voorgaande element. Voor de iterators Pi en Pj het toewijzen van elementen op posities i en j, verwijdert de tweede lidfunctie elk element waarvoor i + 1 == j && comp(*Pi, *Pj).
Voor een gecontroleerde reeks lengten N (> 0) wordt het predicaat comp(*Pi, *Pj) tijd geëvalueerd N - 1 .
Een uitzondering treedt alleen op als comp er een uitzondering wordt gegenereerd. In dat geval wordt de gecontroleerde reeks in een niet-opgegeven status achtergelaten en wordt de uitzondering opnieuw geworpen.
value_type
Een type dat het type element aangeeft dat is opgeslagen in een doorstuurlijst.
typedef typename Allocator::value_type value_type;
Opmerkingen
Het type is een synoniem voor de sjabloonparameter Type.