列表初始化還是元素數量

2021-10-16 13:25:38 字數 734 閱讀 6477

vector

初始化的真正含義依賴於傳遞初始值時用的時花括號還是圓括號。

用乙個整數來初始化vector ,整數的含義可能時vector物件的數量也可能是元素的值。

用兩個整數來初始化vector,這兩個整數可能乙個是vector物件的容量,另乙個是元素的初值。也可能是容量為2的vector物件中兩個元素的初值。

vector<

int>v1(

10);// 10個元素,每個元素值為0

vector<

int> v1

;// 1個元素,每個元素值為10

vector<

int>v1(

10,1)

;// 10個元素,每個元素值為1

vector<

int> v1

;// 2個元素 ,值分別是10 和 1

如果初始化用了花括號的形式但是提供的值又不能用來列表初始化,就考慮用這樣的值來構造vector物件

vector v5

;// 列表初始化,1個元素

vectorv6(

"hi");

// 錯誤,不能使用字串

vector v7

;// 10個預設初始化的元素

vector v8

;// 10個值為"hi"的元素

不能用int 初始化string物件,所以v7和v8提供的值不能作為元素的初始值。

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化列表

與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...

初始化列表

初始化列表一般用於建構函式賦值的操作中,它的常用賦值物件有 1 常量 常資料成員只能用初始化列表來初始化 2 引用型別 3 無參建構函式的類的物件。具體格式為 類名 形參表 如int x,int y 成員資料 x 成員資料 y 意思是成員資料繫結x,y。下面以幾個例子來說明一下 一 求圓面積 inc...