日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]以前什么樣C或者C++在初始化數(shù)組時(shí),可以使用下面的花括號(hào)加初始值的形式:int?int_array[]?=?{1,?2,?3,?4,?5};在C++中,如果有下面這樣一個(gè)類:class?Tester

以前什么樣


C或者C++在初始化數(shù)組時(shí),可以使用下面的花括號(hào)加初始值的形式:


int?int_array[]?=?{1,?2,?3,?4,?5};


在C++中,如果有下面這樣一個(gè)類:


class?Tester

{

public:

?????Tester(int?value)

?????????:m_value(value?*?2)?

?????{?}

? ???void?print(){

???????? cout?<<?m_value?<<?endl;

???? }

private:

???? int?m_value;

};


那么它的初始化可以寫成這樣:


Tester?tester_array[]?=?{6,?7,?8,?9,?10};


Tester的構(gòu)造函數(shù)可以被正常地調(diào)用。


存在的問題


問題就是這種方法的運(yùn)用范圍很窄,許多場景都用不了。例如vector,可以像數(shù)組一樣使用,可以自己管理數(shù)據(jù)長度,還提供各種操作數(shù)組的方法。聲明的方法也很簡單:


vector


但是有一個(gè)問題,當(dāng)需要指定元素初始化vector時(shí)就不那么方便了。


初始化方法1:


int_vector.push_back(5);
int_vector.push_back(4);
int_vector.push_back(3);
int_vector.push_back(2);
int_vector.push_back(1);


初始化方法二:


int int_array[] = {1, 2, 3, 4, 5};

for(int i = 0; i < sizeof(int_array)/sizeof(int_array[0]); ++i)
{
??? int_vector.push_back(int_vector[i]);

}


無論那種方法,都給人一種如鯁在喉的感覺。


哪里有不方便,哪里就有改進(jìn)


C++11中擴(kuò)展了使用花括號(hào)初始化變量的應(yīng)用范圍,稱這種初始化方式為列表初始化。


例如:


可以像下面這樣初始化vector:


vector


可以像下面這樣初始化list:


list



甚至可以像下面這樣初始化map


map


另一種形式


下面和寫法也合法,和上面的幾種寫法等價(jià)。


vector


list



map


有沒有夢想成真的感覺?



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉