做电路方案设计的网站,seo排名查询,广州花都网站建设,手机网站模板 优帮云目录 initializer_list
C自动类型推断
auto
typeid
decltype initializer_listT C支持统一初始化{ }#xff0c;出现了一个新的类型initializer_listT#xff0c;一切类型都可以用列表初始化。提供了一种更加灵活、安全和明确的方式来初始化对象。 class…目录 initializer_list
C自动类型推断
auto
typeid
decltype initializer_listT C支持统一初始化{ }出现了一个新的类型initializer_listT一切类型都可以用列表初始化。提供了一种更加灵活、安全和明确的方式来初始化对象。 class Date
{
public:Date(int year,int month,int days):_year(year),_month(month),_days(days){}
private:int _year;int _month;int _days;
};
int main()
{//{}列表初始化(统一初始化)int a { 10};int b { 10 };char c{x};int arr[3] { 1,2,3 };string s{hello world};Date d1(2022,1,2);//C98的初始化方式Date d2{ 2019,2,3 };//C11的列表初始化Date d3 { 2023,7,1 };//{2023,7,1}隐式类型转换-临时对象-d3拷贝构造vectorint v { 1,2,3,4,5,6 };C11的列表初始化vector具有形参类型是initializer_list的构造函数listint li { 1,2,3 };return 0;
}
initializer_list结构 创建一个initializer_list并遍历
initializer_listint il { 1,2,3 };
initializer_listint::iterator it il.begin();
while (it ! il.end())
{cout *it endl;it;
}
可以将initializer_list作为容器构造函数的形参类型来初始化容器例如 C自动类型推断
auto
通过auto关键字可以使程序员在写一些长度较长的类型名时免去拼写使用auto来代替auto会自动推导出等号右边的类型。
vectorint v;
auto it v.begin();//auto自动推导迭代器类型
//本来需要这样写vectorint::iterator itv.begin();
typeid
cout typeid(v).name() endl;//打印出类型的字符串 decltype
使用推导出来的类型定义新的变量