C++ 向量初始化列表与赋值
C++ Vector Initialization List vs. Assignment
在 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};
这是direct-list-initialization, a form of direct-initialization。
一个对象 v_1
是用提供的值构造的。
vector<int> v_2 = {3, 4, 5};
这是copy-list-initialization。在这种情况下,与 direct-list-initialization.
没有区别
尽管如此,仍然存在细微的语义差异,因为 复制初始化 排除了显式构造函数。
C++11 中引入了列表初始化语法(版本 1 和 2)。
在 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};
这是direct-list-initialization, a form of direct-initialization。
一个对象 v_1
是用提供的值构造的。
vector<int> v_2 = {3, 4, 5};
这是copy-list-initialization。在这种情况下,与 direct-list-initialization.
没有区别尽管如此,仍然存在细微的语义差异,因为 复制初始化 排除了显式构造函数。
C++11 中引入了列表初始化语法(版本 1 和 2)。