浅谈initialize_list原理
自从C++11开始,初始化就引入了一个新的特性,如下:
可以直接通过一个初始化列表来初始化容器,那么这个是怎么实现的呢?这就和我们今天要说的
initializer_list
有关了。
1.引入
先看一个情况,在C语言中,如果我们想要实现一个可变形参的函数,那么应该这么做:
这里函数必须声明称C调用约定,至于原因,跟栈平衡恢复有关,这里不细讲。
当然在C++中,也可以使用这种情况,不过C++可以使用另外一种技术实现,就是initializer_list,下面我们看一下这种技术的基本使用和原理。
2.initializer_list
2.1简介
先来看一下C++网站对于这种结构的描述:
ThistypeisusedtoaccessthevaluesinaC++initializationlist,whichisalistofelementsoftypeconstT.
Objectsofthistypeareautomaticallyconstructedbythe