std::inplace_vector<T,N>:: try_append_range
|
template
<
container-compatible-range
<
T
>
R
>
constexpr std :: ranges:: borrowed_iterator_t < R > try_append_range ( R && rg ) ; |
(depuis C++26) | |
Ajoute des copies des éléments initiaux dans
rg
avant
end()
, jusqu'à ce que tous les éléments soient insérés ou que le stockage interne soit épuisé (c'est-à-dire lorsque
size
(
)
==
capacity
(
)
est
true
).
Tous les itérateurs et références restent valides. L'itérateur
end()
est invalidé.
Chaque itérateur dans rg est déréférencé au plus une fois.
Table des matières |
Paramètres
| rg | - |
une
plage compatible avec les conteneurs
, c'est-à-dire une
input_range
dont les éléments sont convertibles en
T
|
| Exigences de type | ||
-
T
doit être
EmplaceConstructible
dans
inplace_vector
à partir de
*
ranges::
begin
(
rg
)
. Sinon, le comportement est indéfini.
|
||
Valeur de retour
Un itérateur pointant vers le premier élément de rg qui n'a pas été inséré dans * this , ou ranges:: end ( rg ) si aucun tel élément n'existe.
Complexité
Linéaire dans le nombre d'éléments insérés.
Exceptions
Toute exception levée par l'initialisation de l'élément inséré.
inplace_vector
fournit la
garantie de sécurité d'exception de base
, c'est-à-dire que tous les éléments du conteneur avant l'appel sont préservés, et tous les éléments déjà insérés (avant l'exception, le cas échéant) sont également préservés.
Notes
|
Cette section est incomplète
Raison : Expliquer l'objectif de cette API. |
Exemple
#include <cassert> #include <initializer_list> #include <inplace_vector> int main() { using I = std::inplace_vector<int, 8>; auto nums = I{1, 2, 3}; const auto rg = {-1, -2, -3}; auto it = nums.try_append_range(rg); assert(nums.size() == 6); assert((nums == I{1, 2, 3, -1, -2, -3})); assert(it == rg.end()); it = nums.try_append_range(rg); assert(nums.size() == 8); assert((nums == I{1, 2, 3, -1, -2, -3, -1, -2})); assert(it == rg.begin() + 2); }
Voir aussi
|
ajoute une plage d'éléments à la fin
(fonction membre publique) |
|
|
ajoute un élément à la fin
(fonction membre publique) |
|
|
tente d'ajouter un élément à la fin
(fonction membre publique) |
|
|
ajoute inconditionnellement un élément à la fin
(fonction membre publique) |
|
|
construit un élément en place à la fin
(fonction membre publique) |
|
|
tente de construire un élément en place à 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) |