以下两种声明方式有什么区别?
unordered_map<int, int> mp;
auto umap = unordered_map<int, int>{};
是否与优化有关?
对于unordered_map
,它不会有什么不同,因为c++17。
如果类型是例如聚合类型,则会有所不同。
因此,如果你有和std::array
,会有不同的结果
std::array<int, 4> a1;
auto a2 = std::array<int, 4>{};
a1
将包含不确定的值。
另一方面,这些将是相等的:
std::array<int, 4> a1{};
auto a2 = std::array<int, 4>{};
因此,使用auto var = some_type{};
(也称为"几乎总是自动模式"(可以确保您不会忘记初始化变量。