C++矢量初始化列表与赋值



在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中引入的。

最新更新