std::vector<T,Allocator>::assign
De cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| (1) | ||
void assign( size_type count, const T& value ); |
(hasta C++20) | |
constexpr void assign( size_type count, const T& value ); |
(desde C++20) | |
| (2) | ||
template< class InputIt > void assign( InputIt first, InputIt last ); |
(hasta C++20) | |
template< class InputIt > constexpr void assign( InputIt first, InputIt last ); |
(desde C++20) | |
| (3) | ||
void assign( std::initializer_list<T> ilist ); |
(desde C++11) (hasta C++20) |
|
constexpr void assign( std::initializer_list<T> ilist ); |
(desde C++20) | |
Reemplaza el contenido del contenedor
1) Reemplaza el contenido con
count copias de value.2) Reemplaza el contenido con las copias del rango
[first, last). El comportamiento está indefinido si cualquiera de los argumentos es un iterador a *this.
|
Esta sobrecarga tiene el mismo efecto que la sobrecarga (1) si |
(hasta C++11) |
|
Esta sobrecarga solo participa en la resolución de sobrecargas si |
(desde C++11) |
3) Reemplaza el contenido con los elementos de la lista de inicializadores
ilist.Se invalidan todos los iteradores, punteros y referencias a los elementos del contenedor. También se invalida el iterador después del final.
Parámetros
| count | - | El nuevo tamaño del contenedor. |
| value | - | El valor con el cual inicializar los elementos del contenedor. |
| first, last | - | El rango del cual copiar los elementos. |
| ilist | - | La lista de inicializadores de la cual copiar los elementos. |
Complejidad
1) Lineal con respecto a
count.2) Lineal con respecto a la distancia entre
first y last.3) Lineal con respecto a
ilist.size().Ejemplo
El siguiente código usa assign para añadir varios caracteres a std::vector<char>:
Ejecuta este código
#include <vector>
#include <iostream>
int main()
{
std::vector<char> caracteres;
auto imprimir_vector = [&](){
for (char c : caracteres)
std::cout << c << ' ';
std::cout << '\n';
};
caracteres.assign(5, 'a');
imprimir_vector();
{
std::vector<char> extra(6, 'b');
caracteres.assign(extra.begin(), extra.end());
}
imprimir_vector();
caracteres.assign({'C', '+', '+', '2', '0'});
imprimir_vector();
}
Salida:
a a a a a
b b b b b b
C++20
Véase también
Construye el contenedor vector. (función miembro pública) |