Namespaces
Variants

std::counted_iterator<I>:: base

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
constexpr const I & base ( ) const & noexcept ;
(1) (depuis C++20)
constexpr I base ( ) && ;
(2) (depuis C++20)

Retourne l'itérateur de base sous-jacent.

1) Retourne une référence à l'itérateur sous-jacent.
2) Construit par déplacement la valeur de retour à partir de l'itérateur sous-jacent.

Table des matières

Paramètres

(aucun)

Valeur de retour

1) Une référence à l'itérateur sous-jacent.
2) Un itérateur construit par déplacement à partir de l'itérateur sous-jacent.

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

#include <algorithm>
#include <iostream>
#include <iterator>
#include <type_traits>
#include <vector>
int main()
{
    std::vector<int> v{0, 1, 2, 3, 4};
    std::reverse_iterator<std::vector<int>::iterator> reverse{v.rbegin()};
    std::counted_iterator counted{reverse, 3};
    static_assert(std::is_same<
        decltype(counted.base()),
        std::reverse_iterator<std::vector<int>::iterator> const&
    >{});
    std::cout << "Affichage avec reverse_iterator: ";
    for (auto r = counted.base(); r != v.rend(); ++r)
        std::cout << *r << ' ';
    std::cout << '\n';
    std::cout << "Affichage avec counted_iterator: ";
    for (; counted != std::default_sentinel; ++counted)
        std::cout << counted[0] << ' ';
    std::cout << '\n';
}

Sortie :

Affichage avec reverse_iterator: 4 3 2 1 0
Affichage avec counted_iterator: 4 3 2

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 3391 C++20 la version const de base retourne une copie de l'itérateur sous-jacent retourne une référence
LWG 3593 C++20 la version const de base retourne une référence mais pourrait ne pas être noexcept rendue noexcept

Voir aussi

accède à l'élément pointé
(fonction membre publique)
retourne la distance jusqu'à la fin
(fonction membre publique)