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 ) ; |
(desde C++26) | |
Añade copias de los elementos iniciales en
rg
antes de
end()
, hasta que todos los elementos sean insertados o se agote el almacenamiento interno (es decir,
size
(
)
==
capacity
(
)
sea
true
).
Todos los iteradores y referencias permanecen válidos. El
end()
iterador queda invalidado.
Cada iterador en rg es desreferenciado como máximo una vez.
Contenidos |
Parámetros
| rg | - |
un
rango compatible con contenedor
, es decir, un
input_range
cuyos elementos son convertibles a
T
|
| Requisitos de tipo | ||
-
T
debe ser
EmplaceConstructible
en
inplace_vector
desde
*
ranges::
begin
(
rg
)
. De lo contrario, el comportamiento es indefinido.
|
||
Valor de retorno
Un iterador que apunta al primer elemento de rg que no fue insertado en * this , o ranges:: end ( rg ) si no existe tal elemento.
Complejidad
Lineal en el número de elementos insertados.
Excepciones
Cualquier excepción lanzada por la inicialización del elemento insertado.
inplace_vector
proporciona la
garantía básica de seguridad ante excepciones
, es decir, se preservan todos los elementos del contenedor anteriores a la llamada, y también se preservan todos los elementos ya insertados (antes de la excepción, si la hubiera).
Notas
|
Esta sección está incompleta
Motivo: Explicar el propósito de esta API. |
Ejemplo
#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); }
Véase también
|
añade un rango de elementos al final
(función miembro pública) |
|
|
añade un elemento al final
(función miembro pública) |
|
|
intenta añadir un elemento al final
(función miembro pública) |
|
|
añade incondicionalmente un elemento al final
(función miembro pública) |
|
|
construye un elemento in-situ al final
(función miembro pública) |
|
|
intenta construir un elemento in-situ al final
(función miembro pública) |
|
|
construye incondicionalmente un elemento in-situ al final
(función miembro pública) |
|
|
elimina el último elemento
(función miembro pública) |
|
|
crea un
std::back_insert_iterator
del tipo inferido del argumento
(plantilla de función) |