C 11之列表初始化

2022-06-05 02:57:11 字數 977 閱讀 4159

//c++98使用{}對陣列初始化

int arr = ;

int arr[4] = ;

//但對於自定義型別會報錯

vectorv;

//內建型別

int x1 = ;

int x2;

int x3 = 1+2;

int x4 = ;

int x5;

//陣列

int arr1[5] ;

int arr2 ;

//動態陣列 , c++98不支援

int* arr3 = new int[5];

//標準容器

vectorv;

mapm,,};

//1.支援對單個物件直接列表初始化

class point

private:

int _x;

int _y;

};point p;

//2.多個物件列表初始化需要過載乙個帶有initialzer_list型別引數的建構函式

//initialzer_list: 系統自定義類模板 主要方法:begin(),end(),size()

//模擬vector借用initialzer_list實現多物件初始化

#includeclass vector

}vector& operator=(initialzer_listl)

return *this;

}//...

private:

t* _arr;

size_t _cap;

size_t _size;`

};

initialzer_list基本用法:

C 11 就地初始化與列表初始化

在 c 11 之前,只能對結構體或類的靜態常量成員進行就地初始化,其他的不行。class c class c or int b c 11 only int c 7 error 注意,小括號初始化方式不能用於就地初始化。c 11 支援了就地初始化非靜態資料成員的同時,初始化列表的方式也被保留下來,也就...

c 11 就地初始化與列表初始化

還可以看看 在c 11之前,只能對結構體或類的靜態常量成員進行就地初始化,其他的不行。class c class c 或int b c 11 only int c 7 error 1.2就地初始化與初始化列表的先後順序 c 11標準支援了就地初始化非靜態資料成員的同時,初始化列表的方式也被保留下來,...

C 11 學習筆記 列表初始化

一.列表初始化 1.在c 98 03中,只有普通陣列和pod型別 plain old data型別,可以直接使用memcpy複製的物件 可以用初始化列表來進行初始化。int i arr 3 long l arr 3 struct a a 2.在c 11中,初始化列表可以用於任何型別物件的初始化列表,...