Capacidad inicial de vector en C ++.

Cuál es elcapacity() de unastd::vector que se crea utilizando el constuctor por defecto? Sé que elsize() es cero ¿Podemos afirmar que un vector construido por defecto no llama asignación de memoria del montón?

De esta manera sería posible crear una matriz con una reserva arbitraria utilizando una sola asignación, comostd::vector<int> iv; iv.reserve(2345);. Digamos que por alguna razón, no quiero comenzar elsize() en 2345.

Por ejemplo, en Linux (g ++ 4.4.5, kernel 2.6.32 amd64)

#include <iostream>
#include <vector>

int main()
{
  using namespace std;
  cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl;
  return 0;
}

impreso0,10. ¿Es una regla, o es dependiente del proveedor de STL?

Respuestas a la pregunta(5)

Su respuesta a la pregunta