std::counted_iterator<I>:: base
From cppreference.net
<
cpp
|
iterator
|
counted iterator
C++
Iterator library
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::counted_iterator
| Member functions | ||||
|
counted_iterator::base
|
||||
| Non-member functions | ||||
|
(C++20)
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Helper classes | ||||
|
constexpr
const
I
&
base
(
)
const
&
noexcept
;
|
(1) | (desde C++20) |
|
constexpr
I base
(
)
&&
;
|
(2) | (desde C++20) |
Devuelve el iterador base subyacente.
1)
Devuelve una referencia al iterador subyacente.
2)
Construye por movimiento el valor de retorno desde el iterador subyacente.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
1)
Una referencia al iterador subyacente.
2)
Un iterador construido por movimiento desde el iterador subyacente.
Excepciones
Puede lanzar excepciones definidas por la implementación.
Ejemplo
Ejecutar este código
#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 << "Imprimir con reverse_iterator: "; for (auto r = counted.base(); r != v.rend(); ++r) std::cout << *r << ' '; std::cout << '\n'; std::cout << "Imprimir con counted_iterator: "; for (; counted != std::default_sentinel; ++counted) std::cout << counted[0] << ' '; std::cout << '\n'; }
Salida:
Imprimir con reverse_iterator: 4 3 2 1 0 Imprimir con counted_iterator: 4 3 2
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Se aplica a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3391 | C++20 |
la versión const de
base
devuelve una copia del iterador subyacente
|
devuelve una referencia |
| LWG 3593 | C++20 |
la versión const de
base
devuelve una referencia pero podría no ser noexcept
|
hecho noexcept |
Véase también
|
accede al elemento apuntado
(función miembro pública) |
|
|
devuelve la distancia hasta el final
(función miembro pública) |