std::rend, std::crend
| Défini dans l'en-tête <array>
|
||
| Défini dans l'en-tête <deque>
|
||
| Défini dans l'en-tête <flat_map>
|
(depuis C++23) |
|
| Défini dans l'en-tête <flat_set>
|
(depuis C++23) |
|
| Défini dans l'en-tête <forward_list>
|
||
| Défini dans l'en-tête <inplace_vector>
|
(depuis C++26) |
|
| Défini dans l'en-tête <iterator>
|
||
| Défini dans l'en-tête <list>
|
||
| Défini dans l'en-tête <map>
|
||
| Défini dans l'en-tête <optional>
|
(depuis C++26) |
|
| Défini dans l'en-tête <regex>
|
||
| Défini dans l'en-tête <set>
|
||
| Défini dans l'en-tête <span>
|
(depuis C++20) |
|
| Défini dans l'en-tête <stacktrace>
|
(depuis C++23) |
|
| Défini dans l'en-tête <string>
|
||
| Défini dans l'en-tête <string_view>
|
(depuis C++17) |
|
| Défini dans l'en-tête <unordered_map>
|
||
| Défini dans l'en-tête <unordered_set>
|
||
| Défini dans l'en-tête <valarray>
|
||
| Défini dans l'en-tête <vector>
|
||
template< class C >
auto rend( C& c ) noexcept(noexcept(c.rend()))
-> decltype(c.rend());
|
(1) | (depuis C++14) (constexpr depuis C++17) |
template< class C >
auto rend( const C& c ) noexcept(noexcept(c.rend()))
-> decltype(c.rend());
|
(2) | (depuis C++14) (constexpr depuis C++17) |
template< class T, std::size_t N >
std::reverse_iterator<T*> rend( T (&array)[N] ) noexcept;
|
(3) | (depuis C++14) (constexpr depuis C++17) |
template< class T >
std::reverse_iterator<const T*> rend( std::initializer_list<T> il ) noexcept;
|
(4) | (depuis C++14) (constexpr depuis C++17) |
template< class C >
auto crend( const C& c ) noexcept(noexcept(std::rend(c)))
-> decltype(std::rend(c));
|
(5) | (depuis C++14) (constexpr depuis C++17) |
Retourne un itérateur vers la fin inverse de la plage donnée.
c.rend(), qui est généralement un itérateur pointant après la fin inverse de la séquence représentée par c.std::reverse_iterator<T*> vers la fin inverse de array.std::reverse_iterator<const T*> vers la fin inverse de il.std::end(c), avec c toujours traité comme qualifié const.
Paramètres
| c | - |
un conteneur ou une vue avec une fonction membre
rend
|
| array | - | un tableau de type arbitraire |
| il | - | un std:: initializer_list |
Valeur de retour
Exceptions
Peut lever des exceptions définies par l'implémentation.
Surcharges
Des surcharges personnalisées de
rend
peuvent être fournies pour les classes et les énumérations qui n'exposent pas de fonction membre
rend()
appropriée, mais qui peuvent être itérées.
|
Les surcharges de
|
(depuis C++20) |
Notes
La surcharge pour
std::initializer_list
est nécessaire car elle ne possède pas de fonction membre
rend
.
Exemple
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { int a[]{4, 6, -3, 9, 10}; std::cout << "Tableau style C `a` en sens inverse : "; std::copy(std::rbegin(a), std::rend(a), std::ostream_iterator<int>(std::cout, " ")); auto il = {3, 1, 4}; std::cout << "\nstd::initializer_list `il` en sens inverse : "; std::copy(std::rbegin(il), std::rend(il), std::ostream_iterator<int>(std::cout, " ")); std::vector<int> v{4, 6, -3, 9, 10}; std::cout << "\nstd::vector `v` en sens inverse : "; std::copy(std::rbegin(v), std::rend(v), std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; }
Sortie :
Tableau style C `a` en sens inverse : 10 9 -3 6 4 std::initializer_list `il` en sens inverse : 4 1 3 std::vector `v` en sens inverse : 10 9 -3 6 4
Rapports de défauts
Les rapports de défauts suivants modifiant le comportement ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| RD | Appliqué à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 3537 | C++14 | std::rend et std::crend n'étaient pas obligés de propager la spécification d'exception
|
obligatoire |
Voir aussi
|
(C++11)
(C++14)
|
retourne un itérateur vers la fin d'un conteneur ou d'un tableau
(fonction template) |
|
(C++14)
|
retourne un itérateur inverse vers le début d'un conteneur ou d'un tableau
(fonction template) |
|
(C++11)
(C++14)
|
retourne un itérateur vers le début d'un conteneur ou d'un tableau
(fonction template) |
|
(C++20)
|
retourne un itérateur inverse de fin vers une plage
(objet point de personnalisation) |
|
(C++20)
|
retourne un itérateur inverse de fin vers une plage en lecture seule
(objet point de personnalisation) |