Zoeken…


Invoering

std::forward_list is een container die het snel invoegen en verwijderen van elementen vanuit elke plek in de container ondersteunt. Snelle willekeurige toegang wordt niet ondersteund. Het is geïmplementeerd als een afzonderlijk gekoppelde lijst en heeft in wezen geen overhead vergeleken met de implementatie in C. Vergeleken met std::list biedt deze container meer ruimte-efficiënte opslag wanneer bidirectionele iteratie niet nodig is.

Opmerkingen

Het toevoegen, verwijderen en verplaatsen van de elementen binnen de lijst of over verschillende lijsten, maakt de iterators die momenteel verwijzen naar andere elementen in de lijst niet ongeldig. Een iterator of verwijzing naar een element is echter ongeldig wanneer het overeenkomstige element (via erase_after) uit de lijst wordt verwijderd. std :: forward_list voldoet aan de vereisten van Container (behalve de functie voor lidgrootte en de complexiteit van die operator == is altijd lineair), AllocatorAwareContainer en SequenceContainer.

Voorbeeld

#include <forward_list>
#include <string>
#include <iostream>

template<typename T>
std::ostream& operator<<(std::ostream& s, const std::forward_list<T>& v) {
    s.put('[');
    char comma[3] = {'\0', ' ', '\0'};
    for (const auto& e : v) {
        s << comma << e;
        comma[0] = ',';
    }
    return s << ']';
}

int main() 
{
    // c++11 initializer list syntax:
    std::forward_list<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};
    std::cout << "words1: " << words1 << '\n';
 
    // words2 == words1
    std::forward_list<std::string> words2(words1.begin(), words1.end());
    std::cout << "words2: " << words2 << '\n';
 
    // words3 == words1
    std::forward_list<std::string> words3(words1);
    std::cout << "words3: " << words3 << '\n';
 
    // words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
    std::forward_list<std::string> words4(5, "Mo");
    std::cout << "words4: " << words4 << '\n';
}

Output:

words1: [the, frogurt, is, also, cursed]
words2: [the, frogurt, is, also, cursed]
words3: [the, frogurt, is, also, cursed]
words4: [Mo, Mo, Mo, Mo, Mo]

methoden

Methode naam Definitie
operator= wijst waarden toe aan de container
assign wijst waarden toe aan de container
get_allocator geeft de bijbehorende allocator terug
------ ------
Element toegang
front toegang tot het eerste element
------ ------
iterators
before_begi n retourneert een iterator naar het element voordat u begint
cbefore_begin retourneert een constante iterator naar het element voordat u begint
begin keert een iterator terug naar het begin
cbegin keert een constiter terug naar het begin
end geeft een iterator terug naar het einde
cend geeft een iterator terug naar het einde
Capaciteit
empty controleert of de container leeg is
max_size geeft het maximaal mogelijke aantal elementen terug
modifiers
clear wist de inhoud
insert_after voegt elementen achter een element in
emplace_after construeert elementen op hun plaats na een element
erase_after wist een element na een element
push_front voegt een element toe aan het begin
emplace_front bouwt in het begin een element op zijn plaats
pop_front verwijdert het eerste element
resize verandert het aantal opgeslagen elementen
swap wisselt de inhoud
Activiteiten
merge voegt twee gesorteerde lijsten samen
splice_after verplaatst elementen van een andere forward_list
remove verwijdert elementen die aan specifieke criteria voldoen
remove_if verwijdert elementen die aan specifieke criteria voldoen
reverse keert de volgorde van de elementen om
unique verwijdert opeenvolgende dubbele elementen
sort sorteert de elementen


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow