[英]Is std::advance on an iterator of std::multiset done in constant time?
我想知道在std :: multiset的迭代器上调用std :: advance是否在恒定时间内完成。
不,只有随机访问迭代器才能在恒定时间内进行。 否则,它是距离的线性时间。
从std::advance
,我们看到
复杂
线性的 但是,如果InputIt额外满足RandomAccessIterator的要求,则复杂度是恒定的。
由于std::*map
和std::*set
系列中的任何模板都不满足RandomAccessIterator
要求,因此它是线性的。 从例如这里 :
会员类型
[...]
iterator
Constant BidirectionalIterator
const_iterator
常数BidirectionalIterator
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.