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.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).
| ||
Valor de retorno
(Ninguno)
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) |
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().
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
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) |