草庐IT

stdinitializerlist

全部标签

c++ - 使用 {a,b,c} 作为参数的构造函数或 {a,b,c} 实际上在做什么?

我知道,我可以像这样初始化数据。intarray[3]={1,2,3};甚至intarray[2][2]={{1,2},{3,4}};我也可以使用std::vectorstd::vectorA={1,2,3};假设我想编写自己的类:classmy_class{std::vectorA;public://pseudocodemy_class(*x){storexinA;}//withx={{1,2},{3,4}}//dosomething};是否可以编写这样的构造函数以及如何实现?这是什么说法{{1,2},{3,4}}实际上在做什么?我总是发现,您可以用这种方式初始化数据,但从来不知道它

c++ - 为什么这个 initializer_list 在传递字符串时使用了错误行为?

我已经尝试了我的G++版本的C++0x初始化列表实现,但它只输出空行。#include#include#includeintmain(){std::initializer_lista({"hello","stackoverflow"});for(autoit=a.begin(),ite=a.end();it!=ite;++it)std::cout我不知道我做错了什么。谁能帮帮我吗? 最佳答案 在上面的示例中,您似乎正在创建两个初始化列表。临时{"hello","stackoverflow"}和std::initializer_lis