Po tych oświadczeniach jego zdolność jest definiowana przez realizację. (Należy pamiętać, że różni się od jego wielkości.)
vector<int> myVector(20);
To tworzy wektor wypełniony dwadzieścia 0 jest. Jego rozmiar wynosi dokładnie dwadzieścia, a jego pojemność wynosi co najmniej dwadzieścia. Niezależnie od tego czy jest to dokładnie dwadzieścia, czy nie, definiowane jest wdrożenie; może mieć więcej (prawdopodobnie nie, w praktyce).
myVector.push_back(5);
Następnie XXI element tablicy ma 5, a wydajność jest ponownie implementacji zdefiniowane. (Jeśli moc była dokładnie dwadzieścia przed, to jest zwiększa się w sposób nieokreślony.)
myVector.push_back(14);
Podobnie teraz XXII element tablicy ma wartość 14, a pojemność jest realizacja określone.
Jeśli chcesz zarezerwować miejsca, ale nie wstawić elementy, można zrobić to tak:
vector<int> myVector;
myVector.reserve(20); // capacity is at least twenty, guaranteed not
// to reallocate until after twenty elements are pushed
myVector.push_back(5); // at index zero, capacity at least twenty.
myVector.push_back(14); // at index one, capacity at least twenty.
nie wahaj się rzeczywiście spróbować * bardziej *. –
Witamy w StackOverflow, mam nadzieję, że przeczytałeś [FAQ] (http://stackoverflow.com/faq#howtoask). –