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

来自cppreference.com

[编辑模板]
 
 
 
 
<tbody> </tbody>
size_type capacity() const;
(C++11 起为 noexcept)
(C++20 起为 constexpr)

返回容器当前已为之分配空间的元素数。

参数

(无)

返回值

当前分配存储的容量。

复杂度

常数。

示例

#include <iomanip>
#include <iostream>
#include <vector>

int main()
{
    int sz = 100;
    std::vector<int> v;

    auto cap = v.capacity();
    std::cout << "初始大小: " << v.size() << ", 容量: " << cap << '\n';

    std::cout << "\n演示容量增长策略。"
                 "\n大小:  容量:   比率:\n" << std::left;
    while (sz-- > 0)
    {
        v.push_back(sz);
        if (cap != v.capacity())
        {
            std::cout << std::setw(7) << v.size()
                      << std::setw(7) << v.capacity()
                      << std::setw(10) << v.capacity() / static_cast<float>(cap) << '\n';
            cap = v.capacity();
        }
    }

    std::cout << "\n最终大小: " << v.size() << ", 容量: " << v.capacity() << '\n';
}

可能的输出:

初始大小: 0, 容量: 0

演示容量增长策略。
大小:  容量:   比率:
1      1      inf
2      2      2
3      4      2
5      8      2
9      16     2
17     32     2
33     64     2
65     128    2

最终大小: 100, 容量: 128

参阅

返回元素数
(公开成员函数) [编辑]
预留存储空间
(公开成员函数) [编辑]