std:: begin, std:: cbegin
|
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 begin ( C & c ) - > decltype ( c. begin ( ) ) ; |
(1) |
(depuis C++11)
(constexpr depuis C++17) |
|
template
<
class
C
>
auto begin ( const C & c ) - > decltype ( c. begin ( ) ) ; |
(2) |
(depuis C++11)
(constexpr depuis C++17) |
|
template
<
class
T,
std::
size_t
N
>
T * begin ( T ( & array ) [ N ] ) ; |
(3) |
(depuis C++11)
(noexcept depuis C++14) (constexpr depuis C++14) |
|
template
<
class
C
>
constexpr
auto
cbegin
(
const
C
&
c
)
noexcept
(
/* voir ci-dessous */
)
|
(4) | (depuis C++14) |
Retourne un itérateur vers le début de la plage donnée.
Table des matières |
Paramètres
| c | - |
un conteneur ou une vue avec une fonction membre
begin
|
| array | - | un tableau de type arbitraire |
Valeur de retour
Exceptions
Surcharges
Des surcharges personnalisées de
begin
peuvent être fournies pour les classes et les énumérations qui n'exposent pas de fonction membre
begin()
appropriée, mais qui peuvent être parcourues. Les surcharges suivantes sont déjà fournies par la bibliothèque standard :
|
surcharge
std::begin
(modèle de fonction) |
|
|
(C++11)
|
surcharge
std::begin
(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
begin
dans un contexte générique équivaut à
using
std
::
begin
;
begin
(
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); while (it != end_it) { f(*it); ++it; } }
|
Les surcharges de
|
(depuis C++20) |
Notes
Les surcharges non-tableau reflètent exactement le comportement de
C::begin
. Leurs effets peuvent être surprenants si la fonction membre n'a pas une implémentation raisonnable.
std::cbegin
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::cbegin
peut renvoyer un itérateur mutable. Ce comportement est inattendu pour certains utilisateurs. Voir également
P2276
et
P2278
.
Exemple
#include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v = {3, 1, 4}; auto vi = std::begin(v); std::cout << std::showpos << *vi << '\n'; int a[] = {-5, 10, 15}; auto ai = std::begin(a); std::cout << *ai << '\n'; }
Sortie :
+3 -5
Voir aussi
|
(C++11)
(C++14)
|
retourne un itérateur vers la fin d'un conteneur ou d'un tableau
(fonction template) |
|
(C++20)
|
retourne un itérateur vers le début d'une plage
(customization point object) |
|
(C++20)
|
retourne un itérateur vers le début d'une plage en lecture seule
(customization point object) |