在C++中,以下两种初始化向量的方法在技术上有什么区别?
vector<int> v_1 {0, 1, 2};
vector<int> v_2 = {3, 4, 5};
第一个是初始化列表。第二个是什么?
我很感激关于正确术语的提示,并参考文档和不同的标准版本(C++98与C++11(。
vector<int> v_1 {0, 1, 2};
这是直接列表初始化,是directinitialization的一种形式。
利用所提供的值来构造对象CCD_ 1。
vector<int> v_2 = {3, 4, 5};
这是复制列表初始化。在这种情况下,与直接列表初始化没有区别。
不过,由于复制初始化排除了显式构造函数,因此语义上仍然存在细微差异。
列表初始化语法(版本1和版本2(是在C++11中引入的。