这两种无序映射声明方式之间的区别是什么



以下两种声明方式有什么区别?

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{};(也称为"几乎总是自动模式"(可以确保您不会忘记初始化变量。

最新更新