c++ vector初始化问题?

c++中有列表初始化的操作,类似这样:

std::vector<int> a{v1,v2}; //写法1

同时vector也可以这样写:

std::vector<int> b(10,init); //写法2

在网上查阅资料,列表初始化(写法1)用于聚合类,聚合类不能有构造函数。
而写法2应该是调用了vector类的构造函数,那么意味着vector应改该不能使用列表初始化,这是不是矛盾了呢?

阅读 1.7k
1 个回答

列表初始化不只可以用于聚合类,也可以用于调用构造函数。

dcl.init.list

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题