std::inplace_vector<T,N>::push_back
De fr.cppreference.net
constexpr reference push_back( const T& value );
|
(1) | (depuis C++26) |
constexpr reference push_back( T&& value );
|
(2) | (depuis C++26) |
Ajoute l'élément donné value à la fin du conteneur.
1) Le nouvel élément est initialisé comme une copie de
value.2)
value est déplacé dans le nouvel élément.Aucun itérateur ou référence n'est invalidé, sauf end(), qui est invalidé si l'insertion a lieu.
Paramètres
| value | - | la valeur de l'élément à ajouter |
| Exigences de type | ||
-
T
doit satisfaire aux exigences de
CopyInsertable
pour utiliser la surcharge (1).
|
||
-
T
doit satisfaire aux exigences de
MoveInsertable
pour utiliser la surcharge (2).
|
||
Valeur de retour
back()
, c'est-à-dire une référence à l'élément inséré.
Complexité
Constante.
Exceptions
- std::bad_alloc si size ( ) == capacity ( ) avant l'invocation.
- Toute exception levée par l'initialisation de l'élément inséré.
Si une exception est levée pour quelque raison que ce soit, ces fonctions n'ont aucun effet ( strong exception safety guarantee ).
Exemple
Exécuter ce code
#include <inplace_vector> #include <new> #include <print> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"\N{DOG}"}; fauna.push_back("\N{CAT}"); // surcharge (1) fauna.push_back(std::move(dog)); // surcharge (2) std::println("fauna = {}", fauna); try { fauna.push_back("\N{BUG}"); // lève une exception : il n'y a plus d'espace } catch(const std::bad_alloc& ex) { std::println("{}", ex.what()); } std::println("fauna = {}", fauna); }
Sortie possible :
fauna = ["🐈", "🐕"] std::bad_alloc fauna = ["🐈", "🐕"]
Voir aussi
|
construit un élément en place à la fin
(fonction membre publique) |
|
|
ajoute une plage d'éléments à la fin
(fonction membre publique) |
|
|
tente d'ajouter un élément à la fin
(fonction membre publique) |
|
|
tente de construire un élément en place à la fin
(fonction membre publique) |
|
|
tente d'ajouter une plage d'éléments à la fin
(fonction membre publique) |
|
|
ajoute inconditionnellement un élément à la fin
(fonction membre publique) |
|
|
construit inconditionnellement un élément en place à la fin
(fonction membre publique) |
|
|
supprime le dernier élément
(fonction membre publique) |
|
|
crée un
std::back_insert_iterator
du type déduit de l'argument
(fonction template) |