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()函數用于在添加元素之前預先分配足夠的內存空間,避免頻繁的重新分配內存操作,提高程序的性能。