initializer list 列表初始化

2021-09-19 15:50:04 字數 1323 閱讀 7739

用花括號初始化器列表初始化乙個物件,其中對應建構函式接受乙個std::initializer_list引數.

#include #include 

#include

template

struct

s

v.insert(v.end(), l.begin(), l.end());

}std::pair

c_arr() const

; //

在 return 語句中複製列表初始化

//這不使用 std::initializer_list}};

template

void

templated_fn(t) {}

intmain()

; //

複製初始化

函式呼叫中的列表初始化

std::cout

<< "

the vector size is now

"<< s.c_arr().second << "

ints:\n";

for(auto n : s.v)

std::cout

<< n << '';

std::cout

<< '\n'

; std::cout

<< "

range-for over brace-init-list: \n";

for (int x : ) //

auto 的規則令此帶範圍 for 工作

std::cout << x << '';

std::cout

<< '\n'

; auto al = ; //

auto 的特殊規則

std::cout

<< "

the list bound to auto has size() =

"<< al.size() << '\n'

; //templated_fn();

//編譯錯誤!「 」不是表示式,

//它無型別,故 t 無法推導

templated_fnint>>(); //

ok templated_fnint>>(); //

也 ok

douzujun 閱讀(

...)

編輯收藏

initializer list形參總結

1 基本概念 如果函式的實參數量未知但是全部實參的型別都相同,那麼我們可以使用initializer list型別的形參。initializer list是一種標準庫型別,用於表示某種特定型別的值得陣列。vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類...

初始化列表

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

初始化列表

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