在C++中,std::vector
的拷貝構造函數用于創建一個新的vector
對象,這個新對象是已存在vector
對象的一個副本。拷貝構造函數的工作原理如下:
分配足夠的內存空間:拷貝構造函數首先為新的vector
對象分配足夠的內存空間,以容納原始vector
對象中的所有元素。
復制元素:接下來,拷貝構造函數遍歷原始vector
對象中的每個元素,并將其復制到新的vector
對象中。這里使用的是元素類型的拷貝構造函數或賦值操作符。
設置新的vector
對象的屬性:拷貝構造函數還會設置新的vector
對象的一些屬性,例如元素數量(size)、容量(capacity)等。
以下是一個簡單的示例,展示了如何使用std::vector
的拷貝構造函數:
#include<iostream>
#include<vector>
int main() {
// 創建一個包含5個整數的vector
std::vector<int> vec1 = {1, 2, 3, 4, 5};
// 使用拷貝構造函數創建vec1的副本
std::vector<int> vec2(vec1);
// 輸出vec2的元素
for (int num : vec2) {
std::cout<< num << " ";
}
return 0;
}
輸出結果:
1 2 3 4 5
在這個示例中,vec2
是通過拷貝構造函數從vec1
創建的,包含了與vec1
相同的元素。