Namespaces
Variants

std::insert_iterator

De fr.cppreference.net
 
 
Bibliothèque des itérateurs
Concepts d'itérateurs
Primitives d'itérateur
Concepts et utilitaires d'algorithme
Concepts d'appelables indirects
Exigences communes des algorithmes
(C++20)
(C++20)
(C++20)
Utilitaires
(C++20)
Adaptateurs d'itérateur
Accès aux plages
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
Défini dans l'en-tête <iterator>
template< class Container >
class insert_iterator : public std::iterator<std::output_iterator_tag,
                                             void, void, void, void>
(until C++17)
template< class Container >
class insert_iterator;
(since C++17)

std::insert_iterator est un LegacyOutputIterator qui insère des éléments dans un conteneur pour lequel il a été construit, à la position pointée par l'itérateur fourni. La fonction membre insert() est appelée à chaque fois que l'itérateur (qu'il soit déréférencé ou non) est assigné. Incrémenter le std::insert_iterator est une opération nulle.

Types membres

Type de membre Définition
iterator_category std:: output_iterator_tag
value_type void
difference_type

void

(jusqu'en C++20)

std::ptrdiff_t

(depuis C++20)
pointer void
reference void
container_type Container

Les types membres iterator_category , value_type , difference_type , pointer et reference doivent être obtenus en héritant de std:: iterator < std:: output_iterator_tag , void , void , void , void > .

(jusqu'à C++17)

Fonctions membres

construit un nouveau insert_iterator
(fonction membre publique)
insère un objet dans le conteneur associé
(fonction membre publique)
opération nulle
(fonction membre publique)
opération nulle
(fonction membre publique)

Objets membres

Nom du membre Définition
container (objet membre protégé) un pointeur de type Container*
iter (objet membre protégé) un itérateur de type Container::iterator (jusqu'à C++20) ranges::iterator_t<Container> (depuis C++20)

Exemple

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

Sortie :

-1 1 2 3 4 5 -2 -3

Voir aussi

crée un std::insert_iterator dont le type est déduit de l'argument
(fonction template)
adaptateur d'itérateur pour l'insertion à la fin d'un conteneur
(classe template)
adaptateur d'itérateur pour l'insertion au début d'un conteneur
(classe template)