在C++中,vector是一種動(dòng)態(tài)數(shù)組,可以在運(yùn)行時(shí)自由添加、刪除元素。初始化vector是創(chuàng)建一個(gè)vector對(duì)象并為其分配內(nèi)存空間的過程。以下是C++中初始化vector的幾種方法:
- 默認(rèn)構(gòu)造函數(shù)
使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建一個(gè)空的vector,如下所示:
std::vector<int> vec; // 創(chuàng)建空vector
這種方式可用于創(chuàng)建一個(gè)需要稍后填充的vector。
- 帶有初始元素?cái)?shù)量和值的構(gòu)造函數(shù)
使用帶有初始元素?cái)?shù)量和值的構(gòu)造函數(shù)創(chuàng)建vector,如下所示:
std::vector<int> vec(5, 0); // 創(chuàng)建一個(gè)包含5個(gè)int元素,每個(gè)元素都是0的vector
此方式將會(huì)創(chuàng)建包含5個(gè)值為0的int類型元素的vector。
- 帶有初始元素?cái)?shù)量的構(gòu)造函數(shù)
使用帶有初始元素?cái)?shù)量的構(gòu)造函數(shù)創(chuàng)建vector,如下所示:
std::vector<int> vec(8); // 創(chuàng)建一個(gè)包含8個(gè)未初始化int元素的vector
此方式將會(huì)創(chuàng)建一個(gè)包含8個(gè)未初始化int類型元素的vector。
- 帶有初始元素列表的構(gòu)造函數(shù)
使用帶有初始元素列表的構(gòu)造函數(shù)創(chuàng)建vector ( 在C++中,使用{}
來初始化vector是一種方便的方法,也稱為列表初始化。),如下所示:
std::vector<int> vec = {1, 2, 3}; // 創(chuàng)建一個(gè)包含3個(gè)int元素,值分別為1、2、3的vector
此方式將會(huì)創(chuàng)建一個(gè)包含3個(gè)int類型元素,值分別為1、2、3的vector。
- 復(fù)制或移動(dòng)構(gòu)造函數(shù)
使用復(fù)制或移動(dòng)構(gòu)造函數(shù)可以從一個(gè)已存在的vector創(chuàng)建新的vector。如下所示:
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2(vec1); // 創(chuàng)建一個(gè)與vec1的內(nèi)容相同的vector
std::vector<int> vec3(std::move(vec2)); // 使用移動(dòng)構(gòu)造函數(shù)將vec2的所有資源轉(zhuǎn)移給vec3
這種方式使用較少,但是在某些情況下可以使用它們來優(yōu)化代碼性能。文章來源:http://www.zghlxwxcb.cn/news/detail-567100.html
需要注意的是,在初始化vector時(shí)提供的初始值,需要與vector模板參數(shù)類型匹配或者能夠隱式轉(zhuǎn)換為vector模板參數(shù)類型。如果提供的初始值數(shù)量超過了vector預(yù)留的存儲(chǔ)空間,則vector會(huì)自動(dòng)分配更大的存儲(chǔ)空間以容納所有元素。文章來源地址http://www.zghlxwxcb.cn/news/detail-567100.html
到了這里,關(guān)于c++初始化vector的幾種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!