假设一个multimap 。我想测试是否包含一个元素,例如pair (“ foo”,“ bar”)。当然可以

auto range(myMap.equal_range("foo"));
auto it = find(range.first, range.second, pair<string, string>("foo", "bar"));


但这意味着在范围内进行线性搜索。由于应该对多图进行排序,因此我希望受益于该排序并以对数复杂度进行搜索。那可能吗?

最佳答案

如果这是典型的访问模式,那么我会说multimap是错误的容器?

类似以下内容可能更合适?

std::map<std::string, std::set<std::string>>


好的,插入和删除更为复杂,但是查找符合您的要求。

关于c++ - 确定 multimap 是否包含元素的最快方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21377395/

10-11 22:06
查看更多