【发布时间】:2023-03-31 01:21:01
【问题描述】:
我有一个程序,其中有两个 std::map 迭代器,分别表示 left 和 right。我想找到[left,right].范围内的元素个数
我天真地做了这样的事情:int len = right - left。我认为它会很好,但它gave me an error
然后我发现 distance(left, right) 方法感谢 Stack Overflow 上的帖子,但不幸的是它具有线性时间复杂度。
是否有可能为此获得O(1) 解决方案?
【问题讨论】:
-
不,
std::distance是最好的选择。如果您确实需要O(1)解决方案,请尝试boost::flatmap
标签: c++ algorithm dictionary