【发布时间】:2020-05-14 09:33:20
【问题描述】:
当我用花括号替换内括号时,我得到了不同的结果。为什么?
C++11 之后的它们不是等价的吗? (除了防止整数降级)
为什么它会改变结构:
来自std::vector(size_type count, const T& value = T(), const Allocator& alloc = Allocator());
致std::vector(std::initializer_list<T> init, const Allocator& alloc = Allocator());
示例
auto th_buckets = std::vector<std::vector<int>>{2, std::vector<int>(5, 0)};
0 0 0 0 0
0 0 0 0 0
auto th_buckets = std::vector<std::vector<int>>{2, std::vector<int>{5, 0}};
5 0
5 0
【问题讨论】:
-
“在 C++11 之后它们不是等价的吗?”不,他们不是。他们做不同的事情。
标签: c++ c++11 vector constructor