Quel est le capacity()
d'un std::vector
qui est créé en utilisant le constucteur par défaut ? Je sais que le size()
est égal à zéro. Peut-on affirmer qu'un vecteur construit par défaut ne fait pas appel à l'allocation de la mémoire du tas ?
De cette façon, il serait possible de créer un tableau avec une réserve arbitraire en utilisant une seule allocation, comme par exemple std::vector<int> iv; iv.reserve(2345);
. Disons que, pour une raison ou une autre, je ne veux pas lancer la size()
le 2345.
Par exemple, sous 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;
}
imprimé 0,10
. Est-ce une règle, ou cela dépend-il du fournisseur de STL ?