Namensräume
Varianten
Aktionen

std::insert_iterator

Von cppreference.com
< cpp‎ | iterator
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
Gemeinsame Algorithmus-Anforderungen
(C++20)
(C++20)
(C++20)
Dienstprogramme
(C++20)
Iterator-Adapter
Bereichszugriff
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
Definiert in Header <iterator>
template< class Container >

class insert_iterator : public std::iterator<std::output_iterator_tag,

                                             void, void, void, void>
(bis C++17)
template< class Container >
class insert_iterator;
(seit C++17)

std::insert_iterator ist ein LegacyOutputIterator, der Elemente in einen Container einfügt, für den er konstruiert wurde, an der durch den bereitgestellten Iterator angegebenen Position. Die Memberfunktion insert() des Containers wird aufgerufen, wenn dem Iterator (ob dereferenziert oder nicht) ein Wert zugewiesen wird. Das Inkrementieren des std::insert_iterator ist eine No-Op.

Inhalt

[bearbeiten] Member-Typen

Mitgliedertyp Definition
iterator_category std::output_iterator_tag
value_type void
difference_type

void

(bis C++20)

std::ptrdiff_t

(seit C++20)
Zeiger void
Referenz void
container_type Container

Die Membertypen iterator_category, value_type, difference_type, pointer und reference müssen durch Ableitung von std::iterator<std::output_iterator_tag, void, void, void, void> erhalten werden.

(bis C++17)

[edit] Memberfunktionen

konstruiert einen neuen insert_iterator
(public member function) [bearbeiten]
fügt ein Objekt in den zugehörigen Container ein
(public member function) [bearbeiten]
no-op
(public member function) [bearbeiten]
no-op
(public member function) [bearbeiten]

[edit] Memberobjekte

Member-Name Definition
container (geschütztes Memberobjekt) ein Zeiger vom Typ Container*
iter (geschütztes Memberobjekt) ein Iterator vom Typ Container::iterator(bis C++20) ranges::iterator_t<Container>(seit C++20)

[edit] Beispiel

#include <algorithm>
#include <iostream>
#include <iterator>
#include <list>
#include <vector>
 
int main()
{
    std::vector<int> v{1, 2, 3, 4, 5};
    std::list<int> l{-1, -2, -3};
    std::copy(v.begin(), v.end(), // may be simplified with std::inserter
              std::insert_iterator<std::list<int>>(l, std::next(l.begin()))); 
    for (int n : l)
        std::cout << n << ' ';
    std::cout << '\n';
}

Ausgabe

-1 1 2 3 4 5 -2 -3

[edit] Siehe auch

erstellt einen std::insert_iterator vom Typ, der aus dem Argument abgeleitet wird
(Funktionsvorlage) [bearbeiten]
Iterator-Adapter für die Einfügung am Ende eines Containers
(Klassenvorlage) [bearbeiten]
Iterator-Adapter für die Einfügung am Anfang eines Containers
(Klassenvorlage) [bearbeiten]