Quel est le capacity()
d'un std::vector
qui est créé en utilisant le constuctor par défaut? Je sais que le size()
est nul. Pouvons-nous déclarer qu'un vecteur construit par défaut n'appelle pas l'allocation de mémoire de tas?
De cette façon, il serait possible de créer un tableau avec une réserve arbitraire en utilisant une seule allocation, comme std::vector<int> iv; iv.reserve(2345);
. Disons que pour une raison quelconque, je ne veux pas commencer size()
le 2345.
Par exemple, sous Linux (g ++ 4.4.5, noyau 2.6.32 amd64)
#include <iostream>
#include <vector>
int main()
{
using namespace std;
cout << vector<int>().capacity() << "," << vector<int>(10).capacity() << endl;
return 0;
}
imprimé 0,10
. S'agit-il d'une règle ou dépend-il du fournisseur STL?