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) (начиная с C++20)
constexpr I base ( ) && ;
(2) (начиная с C++20)

Возвращает базовый итератор, лежащий в основе.

1) Возвращает ссылку на базовый итератор.
2) Перемещающее конструирование возвращаемого значения из базового итератора.

Содержание

Параметры

(нет)

Возвращаемое значение

1) Ссылка на базовый итератор.
2) Итератор, перемещенный из базового итератора.

Исключения

Может генерировать исключения, определяемые реализацией.

Пример

#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 << "Print with reverse_iterator: ";
    for (auto r = counted.base(); r != v.rend(); ++r)
        std::cout << *r << ' ';
    std::cout << '\n';
    std::cout << "Print with counted_iterator: ";
    for (; counted != std::default_sentinel; ++counted)
        std::cout << counted[0] << ' ';
    std::cout << '\n';
}

Вывод:

Print with reverse_iterator: 4 3 2 1 0
Print with counted_iterator: 4 3 2

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3391 C++20 the const version of base returns a copy of the underlying iterator returns a reference
LWG 3593 C++20 the const version of base returns a reference but might not be noexcept made noexcept

Смотрите также

обращается к указываемому элементу
(public member function)
возвращает расстояние до конца
(public member function)