Перевод этой страницы?:

capacity

Синтаксис:

    #include <vector>
    size_type capacity() const;

Функция capacity() возвращает количество элементов, которое может содержать вектор до того, как ему потребуется выделить больше места.

Код в примере использует разные способы установки вместимости двух векторов. Первый способ заключается в передаче аргумента конструктору, который инициализирует вектор 10-ю нулями, второй - в вызове функции reserve. Тем не менее, во втором случае действительный размер вектора остается равным нулю.

   vector<int> v1(10);
   cout << "Вместимость v1 равна " << v1.capacity() << endl;
   cout << "Размер v1 равен " << v1.size() << endl;
   vector<int> v2;
   v2.reserve(20);
   cout << "Вместимость v2 равна " << v2.capacity() << endl;
   cout << "Размер v2 равен " << v2.size() << endl;

После запуска код выводит:

   Вместимость v1 равна 10
   Размер v1 равен 10
   Вместимость v2 равна 20
   Размер v2 равен 0

Контейнеры C++ были разработаны так, что их размер увеличивается динамически. Это освобождает программиста от забот о хранении произвольного числа элементов в контейнере. Тем не менее, иногда программист может улучшить производительность своей программы, дав подсказки компилятору о размере контейнеров, которые программа будет использовать. Эти подсказки, говорящие компилятору, какой ожидается размер контейнера, - вызов функции reserve и конструктора из примера.

Функция capacity() выполняется за константное время.

Смотри также: reserve, resize, size