Qual è il valore capacity()
di un std::vector
che viene creato utilizzando il constuctor predefinito? So che size()
è zero. Si può affermare che un vettore costruito di default non chiama allocazione della memoria heap?
In questo modo sarebbe possibile creare un array con una riserva arbitraria utilizzando una singola allocazione, come std::vector<int> iv; iv.reserve(2345);
. Diciamo che per qualche motivo non voglio avviare il size()
2345.
Ad esempio, su 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;
}
stampato 0,10
. È una regola o dipende dal fornitore STL?