CppDS.com

C++ 98 11 14 17 20 手册

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

来自cppreference.com
< cpp‎ | container‎ | vector

size_type capacity() const;
(C++11 前)
size_type capacity() const noexcept;
(C++11 起)
(C++20 前)
constexpr size_type capacity() const noexcept;
(C++20 起)

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

参数

(无)

返回值

当前分配存储的容量。

复杂度

常数。

示例

#include <iostream>
#include <vector>
 
int main()
{
    int sz = 200;
    std::vector<int> v1;
 
    auto cap = v1.capacity();
    std::cout << "initial capacity=" << cap << '\n';
 
    for (int n = 0; n < sz; ++n) {
        v1.push_back(n);
        if (cap != v1.capacity()) {
            cap = v1.capacity();
            std::cout << "new capacity=" << cap << '\n';
        }
    }
 
    std::cout << "final size=" << v1.size() << '\n';
    std::cout << "final capacity=" << v1.capacity() << '\n';
}

可能的输出:

initial capacity=0
new capacity=1
new capacity=2
new capacity=4
new capacity=8
new capacity=16
new capacity=32
new capacity=64
new capacity=128
new capacity=256
final size=200
final capacity=256

参阅

返回容纳的元素数
(公开成员函数)
预留存储空间
(公开成员函数)
关闭