std::basic_string::reserve
来自cppreference.com
< cpp | string | basic string
void reserve( size_type new_cap = 0 ); |
||
提示 std::basic_string
对象有计划地更改大小,使得它能准确地管理存储分配。
- 若
new_cap
大于当前 capacity() ,则分配新存储,并令 capacity() 大于或等于new_cap
。
- 若
new_cap
小于当前 capacity() ,则这是非强制收缩请求。
- 若
new_cap
小于当前 size() ,则这是非强制收缩以适应请求,等价于 shrink_to_fit() (C++11 起)。
若发生容量更改,则非法化所有迭代器与引用,包含尾后迭代器。
目录 |
[编辑] 参数
new_cap | - | string 的新容量 |
[编辑] 返回值
(无)
[编辑] 异常
若 new_cap
大于 max_size() 则抛出 std::length_error
可能抛出任何 std::allocator_traits<Allocator>::allocate() 所抛的异常,如 std::bad_alloc 。
[编辑] 复杂度
至多与 string 的 size() 成线性
[编辑] 示例
运行此代码
#include <cassert> #include <string> int main() { std::string s; std::string::size_type new_capacity{ 100u }; assert(new_capacity > s.capacity()); s.reserve(new_capacity); assert(new_capacity <= s.capacity()); }
[编辑] 参阅
返回当前分配存储中能保有的字符数 (公开成员函数) |