我想知道哪个更有效。
std::map< String, std::set<int> >
或
std::multimap< String, int >
编辑: 我不打算用这些 map 做任何不寻常的事情。标准的插入、删除、修改、搜索。每个 set 或 multi keyed String 的大小不应超过 100。
最佳答案
我认为这取决于实现,但是(未经)教育的猜测:
实际上,这取决于您将在 multimap
或 std::set
中保留的整数数量。 multimap
很可能会在对键进行 log(n) 搜索之后对值进行线性搜索。如果您有大量整数值,则对键进行 log(n) 搜索,然后对值进行 log(n) 搜索可能会稍微快一些。
然而,就效率而言,使用 string
键将任何内容存储在 map
或 multimap
中几乎肯定会超过两者的差异案例。
如下所述,multimap
可能会更易于使用且更易于维护,从而具有明显的优势。
关于c++ - multimap 与带集合的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351153/