【发布时间】:2013-04-05 02:55:02
【问题描述】:
我们能否找到复杂度小于 O(n) 的多重集中的两个迭代器之间的距离?
我尝试使用迭代器标头提供的 std::distance() 函数。但它的内部实现对于多集迭代器是 O(n)。
【问题讨论】:
-
不,
O(n)在这种情况下是你能做的最好的。
我们能否找到复杂度小于 O(n) 的多重集中的两个迭代器之间的距离?
我尝试使用迭代器标头提供的 std::distance() 函数。但它的内部实现对于多集迭代器是 O(n)。
【问题讨论】:
O(n) 在这种情况下是你能做的最好的。
multiset::iterator 模型 BidirectionalIterator,而不是 RandomAccessIterator,所以 std::distance 只需要是线性的,而不是常量。
【讨论】: