【发布时间】:2012-01-09 14:28:21
【问题描述】:
我在某处读到 std::map 仍然是我们在 STL 中最有效的关联容器,即使使用 std::unsorted_map ——从我在某处读到的内容来看,我不是确定 where-- 只有在有很多条目(例如超过 40k)时, find() 才会更有效。
所以现在我不太确定了,因为我一直认为哈希映射至少在字符串键的情况下更有效。
简而言之:
如果我必须选择一个具有 unknown entry count 并以 std::string 作为键 的关联容器,那会是什么(至少在理论上)寻找更有效(速度)的选择?
【问题讨论】:
-
效率是什么意思 - 空间、插入速度、查找速度?
-
STL 没有 unordered_map,您可能在谈论 C++11 标准库,为此有许多不同的实现,所以哪个更快取决于您的工作量和实现(以及可能还有编译器设置)您使用。你应该配置文件。
-
任何答案都取决于使用模式和实现。他们提供两者主要是因为两者都不是可靠的“更好”。
-
@PlasmaHH:如果使用得当,STL 通常指的是包含仿函数、算法、迭代器和容器的标准库子部分。
-
@Xeo:按照谁说的正确?我无法在标准中找到定义的术语 STL。