溫馨提示×

C++ vector::reserve()實例講解

c++
小億
230
2023-12-19 04:13:56
欄目: 編程語言

vector::reserve()是C++標準庫中vector容器的一種成員函數,用于預留vector的存儲空間。它的作用是為了避免不必要的重新分配內存操作,提高程序的性能。

vector是一個動態(tài)數組,其大小是可變的。當我們向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;
}

在上面的示例中,我們首先創(chuàng)建了一個空的vector容器numbers。接著,我們調用numbers.reserve(10)預留了足夠的內存空間,大小為10。

然后,我們使用push_back()函數向vector中添加了10個元素。

最后,我們使用循環(huán)遍歷vector并輸出所有元素。

通過運行上面的代碼,我們可以看到輸出結果為:0 1 2 3 4 5 6 7 8 9。說明我們成功地向vector中添加了10個元素,并且沒有發(fā)生重新分配內存的操作。

總結一下,vector::reserve()函數用于在添加元素之前預先分配足夠的內存空間,避免頻繁的重新分配內存操作,提高程序的性能。

0