【发布时间】:2017-10-24 04:15:14
【问题描述】:
我注意到在 C++11 中我可以通过以下方式初始化向量(不仅仅是这些):
std::vector<int> v1{0,1,2};
std::vector<int> v2={3,4,5};
我想在第一行中使用了以下构造函数:
vector( std::initializer_list<T> init,
const Allocator& alloc = Allocator() );
我的疑问是第二行是否使用了相同的构造函数,还是涉及到 '=' 的运算符重载。
这里是http://en.cppreference.com/w/cpp/language/list_initialization,上面写着
T object = {arg1, arg2, ...};
被认为是一个初始化列表,对吧?在这种情况下,不应该涉及 '=' 的重载对吗?
【问题讨论】:
-
是的,这是列表初始化,您链接的文档中的案例 #10。
-
是不是说不涉及'='的重载?
-
@Christian 是的,不涉及。
标签: c++ c++11 vector initialization operator-overloading