string::reserve函数

来源:互联网 发布:圣诞布置 知乎 编辑:程序博客网 时间:2024/05/16 11:22

reserve

原型:

 #include <string> void reserve( size_type size = 0 );

函数reserve()将字符串的容量设置为至少size. 如果size指定的数值要小于当前字符串中的字符数(亦即size < this→size()), 容量将被设置为可以恰好容纳字符的数值. reserve()以线性时间(linear time)运行.

resize

原型:

 #include <string> void resize( size_type size, char val = char() );

函数resize()将字符串的尺寸设置为size. 如果val被指定, 则新创建的元素都将被初始化为val. 此函数以线性时间(linear time)运行.

capacity

原型:

 #include <string> size_type capacity() const;

函数capacity()返回string预先保留的最大元素数量. 例如, 下面的代码使用两个不同的方法设置两个vector的容量. 一个方法传递一个实参给构造函数为初始化的尺寸提供建议, 另外一个方法调用reserve函数达到类似的目的:

 vector<int> v1(10); cout << "The capacity of v1 is " << v1.capacity() << endl; vector<int> v2; v2.reserve(20); cout << "The capacity of v2 is " << v2.capacity() << endl;

运行之后, 上面的代码产生如下输出:

 The capacity of v1 is 10 The capacity of v2 is 20

C++容器被设计为可增长的动态尺寸. 这样可以将程序员从可以存储任意数量元素容器的烦恼中解放出来. 而且, 有时候程序员可以通过提供容量的期望值以提示编译器提高程序性能. 这些提示可以像上面的例子那样通过reserve()和构造函数告知编译器期望的容量大小. capacity()函数以常量时间(constant time)运行.

0 0
原创粉丝点击