Spec-Zone.ru › C++

std::vector<T,Allocator>::capacity

size_type capacity() const;
(до C++11)
size_type capacity() const noexcept;
(с C++11)
(до C++20)
constexpr size_type capacity() const noexcept;
(с C++20)

Возвращает количество элементов, для которых контейнер в настоящее время выделил место.

Параметры

(нет)

Значение возврата

Ёмкость текущего выделенного хранилища.

Сложность

Постоянная.

Пример

#include <iomanip>
#include <iostream>
#include <vector>
 
int main()
{
    int sz = 100;
    std::vector<int> v;
 
    auto cap = v.capacity();
    std::cout << "Initial size: " << v.size() << ", capacity: " << cap << '\n';
 
    std::cout << "\nDemonstrate the capacity's growth policy."
                 "\nSize:  Capacity:  Ratio:\n" << std::left;
    while (sz-- > 0)
    {
        v.push_back(sz);
        if (cap != v.capacity())
        {
            std::cout << std::setw( 7) << v.size()
                      << std::setw(11) << v.capacity()
                      << std::setw(10) << v.capacity() / static_cast<float>(cap) << '\n';
            cap = v.capacity();
        }
    }
 
    std::cout << "\nFinal size: " << v.size() << ", capacity: " << v.capacity() << '\n';
}

Возможный вывод:

Initial size: 0, capacity: 0
 
Demonstrate the capacity's growth policy.
Size:  Capacity:  Ratio:
1      1          inf
2      2          2
3      4          2
5      8          2
9      16         2
17     32         2
33     64         2
65     128        2
 
Final size: 100, capacity: 128

См. также

size
возвращает количество элементов
(публичный член-функция)
reserve
резервирует память
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/vector/capacity

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API