vector::reserve()是C++标准库中vector容器的一种成员函数,用于预留vector的存储空间。它的作用是为了避免不必要的重新分配内存操作,提高程序的性能。
vector是一个动态数组,其大小是可变的。当我们向vector中添加元素时,如果vector的容量不足,就需要重新分配更大的内存空间,并将原有的元素拷贝到新的内存中。这个过程是比较耗时的。
而通过调用vector::reserve()函数,我们可以在添加元素之前预先分配足够的内存空间,避免频繁的重新分配内存操作。
下面是一个vector::reserve()的示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers;
// 预留足够的内存空间,避免重新分配内存
numbers.reserve(10);
// 添加元素
for (int i = 0; i < 10; ++i) {
numbers.push_back(i);
}
// 输出元素
for (int i = 0; i < numbers.size(); ++i) {
std::cout << numbers[i] << " ";
}
return 0;
}
在上面的示例中,我们首先创建了一个空的vector容器numbers。接着,我们调用numbers.reserve(10)预留了足够的内存空间,大小为10。
然后,我们使用push_back()函数向vector中添加了10个元素。
最后,我们使用循环遍历vector并输出所有元素。
通过运行上面的代码,我们可以看到输出结果为:0 1 2 3 4 5 6 7 8 9。说明我们成功地向vector中添加了10个元素,并且没有发生重新分配内存的操作。
总结一下,vector::reserve()函数用于在添加元素之前预先分配足够的内存空间,避免频繁的重新分配内存操作,提高程序的性能。