温馨提示×

C++ vector::reserve()实例讲解

c++
小亿
93
2023-12-19 04:13:56
栏目: 编程语言

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()函数用于在添加元素之前预先分配足够的内存空间,避免频繁的重新分配内存操作,提高程序的性能。

0