Qual é o capacity()
de um std::vector
que é criado usando o construtor padrão? Eu sei que o size()
é zero. Podemos afirmar que um vetor construído padrão não chama a alocação de memória heap?
Dessa forma seria possível criar um array com reserva arbitrária usando uma única alocação, como std::vector<int> iv; iv.reserve(2345);
. Digamos que, por algum motivo, eu não queira iniciar size()
no 2345.
Por exemplo, no 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;
}
impresso 0,10
. É uma regra ou depende do fornecedor de STL?