本文主要介绍“什么是C 11列表的初始化”。在日常操作中,相信很多人对于什么是C 11列表的初始化都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“C 11列表初始化是什么”的疑惑!接下来,请和边肖一起学习!
以前什么样
或者c在初始化数组时可以使用以下大括号加上初始值:
int int_array[]={1,2,3,4,5 };
在C语言中,如果有如下类:
类测试器
{
公众号:
测试仪(整数值)
:m_value(值* 2)
{ }
void print(){ 0
cout m _ value endl
}
私人:
int m _ value
};
那么它的初始化可以写成如下:
Tester tester_array[]={6,7,8,9,10 };
测试器的构造函数可以正常调用。
存在的问题
问题是这种方法的适用范围很窄,很多场景无法使用。比如Vector可以像数组一样使用,可以自己管理数据长度,还提供了各种操作数组的方法。申报的方法也很简单:
向量int _ vector
但是有一个问题,当你需要指定一个元素来初始化向量的时候就不那么方便了。
初始化方法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);
初始化方法2:
int int_array[]={1,2,3,4,5 };
for(int I=0;I sizeof(int _ array)/sizeof(int _ array[0]);(一)
{
int _ vector . push _ back(int _ vector[I]);
}
无论哪种方式,都会给人卡在喉咙里的感觉。
那里有不方便,那里就有改进
C 11扩展了使用花括号初始化变量的应用范围,这被称为列表初始化.
示例:
Vector:可以如下初始化
vectorint int _ vector={ 5,4,3,2,1 };
您可以如下初始化列表:
listint int _ list={ 5,4,3,2,1 };
您甚至可以如下初始化地图
mapint,const char* id2Name={{1,' Zhang'},{2,' Wang'},{3,' Li ' };
另一种形式
以下及写作方法也是合法的,与以上几种写作方法相当。
vectorint int _ vector { 5,4,3,2,1 };
listint int _ list { 5,4,3,2,1 };
mapint,const char* id2Name{{1,' Zhang'},{2,' Wang'},{3,' Li ' };
至此,“如何初始化C 11列表”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116974.html