std::vector::shrink_to_fit

来自cppreference.com
< cpp‎ | container‎ | vector
void shrink_to_fit();
(C++11 起)

请求移除未使用的容量。

它是减少 capacity()size()非强制性请求。请求是否达成依赖于实现。

若发生重分配,则所有迭代器,包含尾后迭代器,和所有到元素的引用都被非法化。若不发生重分配,则没有迭代器或引用被非法化。

目录

[编辑] 参数

(无)

类型要求
-
T 必须满足 MoveInsertable 的要求。

[编辑] 返回值

(无)

[编辑] 复杂度

至多与容器大小成线性。

[编辑] 注意

若 T 移动构造函数以外的操作抛出异常,则无效果。

[编辑] 示例

#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> v;
    std::cout << "Default-constructed capacity is " << v.capacity() << '\n';
    v.resize(100);
    std::cout << "Capacity of a 100-element vector is " << v.capacity() << '\n';
    v.clear();
    std::cout << "Capacity after clear() is " << v.capacity() << '\n';
    v.shrink_to_fit();
    std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n';
}

可能的输出:

Default-constructed capacity is 0
Capacity of a 100-element vector is 100
Capacity after clear() is 100
Capacity after shrink_to_fit() is 0

[编辑] 参阅

返回容纳的元素数
(公开成员函数) [编辑]
返回当前存储空间能够容纳的元素数
(公开成员函数) [编辑]