std::vector<T,Allocator>::resize
(1) | ||
void resize( size_type count ); |
(desde C++11) (hasta C++20) |
|
constexpr void resize( size_type count ); |
(desde C++20) | |
(2) | ||
void resize( size_type count, T value = T() ); |
(hasta C++11) | |
void resize( size_type count, const value_type& value ); |
(desde C++11) (hasta C++20) |
|
constexpr void resize( size_type count, const value_type& value ); |
(desde C++20) | |
Cambia el tamaño del contenedor para que contenga count
elementos.
Si el tamaño actual es mayor que count
, el contenedor se reduce a sus primeros count
elementos.
Si el tamaño actual es menor que count
,
value
.Contenido |
[editar] Parámetros
count | - | Nuevo tamaño del contenedor. |
value | - | El valor con el cual inicializar los nuevos elementos. |
Requisitos de tipo | ||
-T debe satisfacer los requisitos de InsertablePorMovimiento y InsertablePorDefecto para poder usar la sobrecarga (1).
| ||
-T debe satisfacer los requisitos de InsertablePorCopia para poder usar la sobrecarga (2).
|
[editar] Valor de retorno
(Ninguno)
[editar] Complejidad
Lineal en la diferencia entre el tamaño actual y count
. Complejidad adicional posible debido a la reasignación de memoria si la capacidad es menor que count
.
Excepciones
Si se lanza una excepción, esta función no tiene efecto (garantía de excepción fuerte).
En la sobrecarga (1), si el constructor de movimiento de |
(desde C++11) |
[editar] Notas
Si la inicialización de valor en la sobrecarga (1) no se desea, por ejemplo, si los elementos son de un tipo no clase y no se necesita ponerlos a cero, esto se puede evitar proporcionando una implementación de Allocator::construct
personalizada.
La capacidad del vector nunca se reduce cuando se cambia el tamaño a un tamaño más pequeño porque eso invalidaría todos los iteradores, en lugar de solo los que serían invalidados por la secuencia equivalente de llamadas a pop_back().
[editar] Ejemplo
#include <iostream> #include <vector> int main() { std::vector<int> c = {1, 2, 3}; std::cout << "El objeto tipo vector alberga: "; for(const auto& el: c) std::cout << el << ' '; std::cout << '\n'; c.resize(5); std::cout << "Después de aumentar el tamaño a 5: "; for(const auto& el: c) std::cout << el << ' '; std::cout << '\n'; c.resize(2); std::cout << "Después de disminuir el tamaño 2: "; for(const auto& el: c) std::cout << el << ' '; std::cout << '\n'; c.resize(6, 4); std::cout << "Después de aumentar el tamaño a 6 (inicializador = 4): "; for(const auto& el: c) std::cout << el << ' '; std::cout << '\n'; }
Salida:
El objeto tipo vector alberga: 1 2 3 Después de aumentar el tamaño a 5: 1 2 3 0 0 Después de disminuir el tamaño 2: 1 2 Después de aumentar el tamaño a 6 (inicializador = 4): 1 2 4 4 4 4
[editar] Véase también
Devuelve el número de elementos. (función miembro pública) | |
Inserta elementos (función miembro pública) | |
Borra elementos (función miembro pública) |