std:: end, std:: cend
|
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>
|
||
|
Défini dans l'en-tête
<flat_set>
|
||
|
Défini dans l'en-tête
<forward_list>
|
||
|
Défini dans l'en-tête
<inplace_vector>
|
||
|
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
<regex>
|
||
|
Défini dans l'en-tête
<set>
|
||
|
Défini dans l'en-tête
<span>
|
||
|
Défini dans l'en-tête
<string>
|
||
|
Défini dans l'en-tête
<string_view>
|
||
|
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
<vector>
|
||
|
template
<
class
C
>
auto end ( C & c ) - > decltype ( c. end ( ) ) ; |
(1) |
(depuis C++11)
(constexpr depuis C++17) |
|
template
<
class
C
>
auto end ( const C & c ) - > decltype ( c. end ( ) ) ; |
(2) |
(depuis C++11)
(constexpr depuis C++17) |
|
template
<
class
T,
std::
size_t
N
>
T * end ( T ( & array ) [ N ] ) ; |
(3) |
(depuis C++11)
(noexcept depuis C++14) (constexpr depuis C++14) |
|
template
<
class
C
>
constexpr
auto
cend
(
const
C
&
c
)
noexcept
(
/* voir ci-dessous */
)
|
(4) | (depuis C++14) |
Retourne un itérateur vers la fin (c'est-à-dire l'élément après le dernier élément) de la plage donnée.
Table des matières |
Paramètres
| c | - |
un conteneur ou une vue avec une fonction membre
end
|
| array | - | un tableau de type arbitraire |
Valeur de retour
Exceptions
Surcharges
Des surcharges personnalisées de
end
peuvent être fournies pour les classes et les énumérations qui n'exposent pas de fonction membre
end()
appropriée, mais qui peuvent être parcourues. Les surcharges suivantes sont déjà fournies par la bibliothèque standard :
|
(C++11)
|
spécialise
std::end
(modèle de fonction) |
|
(C++11)
|
spécialise
std::end
(modèle de fonction) |
|
support de la boucle for basée sur des intervalles
(fonction) |
|
|
support de la boucle for basée sur des intervalles
(fonction) |
Similaire à l'utilisation de
swap
(décrite dans
Swappable
), l'utilisation typique de la fonction
end
dans un contexte générique équivaut à
using
std
::
end
;
end
(
arg
)
;
, ce qui permet à la fois aux surcharges sélectionnées par
ADL
pour les types définis par l'utilisateur et aux modèles de fonctions de la bibliothèque standard d'apparaître dans le même ensemble de surcharges.
template<typename Container, typename Function> void for_each(Container&& cont, Function f) { using std::begin; auto it = begin(cont); using std::end; auto end_it = end(cont); for (; it != end_it; ++it) f(*it); }
|
Les surcharges de
|
(depuis C++20) |
Notes
Les surcharges non-tableau reflètent exactement le comportement de C :: end ( ) . Leurs effets peuvent être surprenants si la fonction membre n'a pas d'implémentation raisonnable.
std::cend
est introduit pour l'unification des accès aux plages membres et non membres. Voir aussi
LWG issue 2128
.
Si
C
est une vue à constance superficielle,
std::cend
peut renvoyer un itérateur mutable. Ce comportement est inattendu pour certains utilisateurs. Voir également
P2276
et
P2278
.
Exemple
#include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> v = {3, 1, 4}; if (std::find(std::begin(v), std::end(v), 5) != std::end(v)) std::cout << "Found a 5 in vector v!\n"; int w[] = {5, 10, 15}; if (std::find(std::begin(w), std::end(w), 5) != std::end(w)) std::cout << "Found a 5 in array w!\n"; }
Sortie :
Found a 5 in array w!
Voir aussi
|
(C++11)
(C++14)
|
retourne un itérateur vers le début d'un conteneur ou d'un tableau
(modèle de fonction) |
|
(C++20)
|
retourne un sentinelle indiquant la fin d'une plage
(objet de point de personnalisation) |
|
(C++20)
|
retourne un sentinelle indiquant la fin d'une plage en lecture seule
(objet de point de personnalisation) |