Sök…


Introduktion

std::forward_list är en behållare som stöder snabb insättning och borttagning av element var som helst i behållaren. Snabb slumpmässig åtkomst stöds inte. Den implementeras som en enskilt länkad lista och har i huvudsak inte några omkostnader jämfört med dess implementering i C. Jämfört med std::list denna behållare mer platseffektiv lagring när dubbelriktad iteration inte behövs.

Anmärkningar

Att lägga till, ta bort och flytta elementen i listan eller över flera listor ogiltiggör inte de iteratorer som för närvarande hänvisar till andra element i listan. En iterator eller referens som hänvisar till ett element ogiltiggörs dock när motsvarande element tas bort (via erase_after) från listan. std :: forward_list uppfyller kraven i Container (förutom storleksmedlemfunktionen och operatörens == komplexitet är alltid linjär), AllocatorAwareContainer och SequenceContainer.

Exempel

#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';
}

Produktion:

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

metoder

Metodnamn Definition
operator= tilldelar värden till behållaren
assign tilldelar värden till behållaren
get_allocator returnerar tillhörande tilldelare
------ ------
Elementåtkomst
front åtkomst till det första elementet
------ ------
iteratorer
before_begi n returnerar en iterator till elementet innan du börjar
cbefore_begin returnerar en konstant iterator till elementet innan du börjar
begin returnerar en iterator till början
cbegin returnerar en const iterator till början
end returnerar en iterator till slutet
cend returnerar en iterator till slutet
Kapacitet
empty kontrollerar om behållaren är tom
max_size returnerar maximalt möjliga antal element
modifierare
clear rensar innehållet
insert_after sätter in element efter ett element
emplace_after konstruerar element på plats efter ett element
erase_after raderar ett element efter ett element
push_front sätter in ett element till början
emplace_front konstruerar ett element på plats i början
pop_front tar bort det första elementet
resize ändrar antalet lagrade element
swap byter innehåll
Operationer
merge sammanfogar två sorterade listor
splice_after flyttar element från en annan framåtlista
remove tar bort element som uppfyller specifika kriterier
remove_if tar bort element som uppfyller specifika kriterier
reverse vänder elementets ordning
unique tar bort på varandra följande duplicerade element
sort sorterar elementen


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow