网站织梦程序改成wordpress,广州市司法职业学校,wordpress internal,公司网站建设需要注意哪些问题initializer_list的简介 initializer_list是C11新出的一个类型#xff0c;正如类型的简介所说#xff0c;initializer_list一般用于作为构造函数的参数#xff0c;来让我们更方便赋值
但是光看这些#xff0c;我们还是不知道initializer_list到底是个什么类型#xff0c;…initializer_list的简介 initializer_list是C11新出的一个类型正如类型的简介所说initializer_list一般用于作为构造函数的参数来让我们更方便赋值
但是光看这些我们还是不知道initializer_list到底是个什么类型我们不妨直接看实例 以上三个都是initializer_list的示例我们发现initializer_list和数组的初始化类似可以运用于所有类型用于存储一长串数据 initializer_list的结构
initializer_list是一个十分初级的container以至于我们甚至可以认为其就是一种数据类型。initializer_list除了默认成员函数外只包含3个成员函数
我们在初始化完成initializer_list后如果想访问其中的值只能通过迭代器的方式来一个个访问这也是实现initializer_list作为构造函数的参数的方式
int main()
{initializer_listint int_list { 10,20,30 };auto it_init_list int_list.begin();while (it_init_list int_list.end()){cout *it_init_list ;it_init_list;}cout endl;
}
并且这个迭代器是只可读无法修改的我们在初始化完成initializer_list后便无法对其中的值进行修改 initializer_list的使用场景
我们在最开始介绍到initializer_list一般用于作为构造函数的参数那其是如何运作的呢 在C11中无论是线性还是非线性的container都兼容了initializer_list的构造。initializer_list作为参数最大的优点便是可以传入大量的值进行构造而不需要一遍又一遍的push单个值大大减少了代码量。
我们以vector为例来看看initializer_list作为参数的构造场景
vector(initializer_listT il)
{reserve(il.size());for (auto e : il){push_back(e);}
}