我什么时候应该使用unordered_map<int, T>,什么时候应该在C++中使用向量<T>或数组<T>?

问题描述 投票:0回答:1

假设索引是关键,在C++中什么时候应该使用

unordered_map<int, T>
,什么时候使用
vector<T>
array<T>
?哪种方法性能更好?

请注意,我没有将

map<A, B>
vector<pair<A, B>>
进行比较,因此 这个答案 无关紧要。

c++
1个回答
0
投票

我认为 Bjarne Stroustrup 在他的许多演讲中都说了一些话,可以归结为 “就选择

std::vector<T>
,因为这在大多数情况下是最好的”

如果不是,那么你就会发现,然后你必须探索替代方案,比如你提到的那些,看看它们是否能给你更多的东西。


关于

std::array<T, N>
,这可能会更好,因为它是堆上的数组而不是堆栈上的数组。但如果它确实可行的话,计算起来会更容易一些。我的意思是,如果这个东西的元素数量是不可预见的,那么你就不能使用
std::array

© www.soinside.com 2019 - 2024. All rights reserved.