繁体   English   中英

std :: multiset的迭代器上的std :: advance是否在恒定时间内完成?

[英]Is std::advance on an iterator of std::multiset done in constant time?

我想知道在std :: multiset的迭代器上调用std :: advance是否在恒定时间内完成。

不,只有随机访问迭代器才能在恒定时间内进行。 否则,它是距离的线性时间。

请参阅: https//en.cppreference.com/w/cpp/iterator/advance

std::advance ,我们看到

复杂

线性的 但是,如果InputIt额外满足RandomAccessIterator的要求,则复杂度是恒定的。

由于std::*mapstd::*set系列中的任何模板都不满足RandomAccessIterator要求,因此它是线性的。 从例如这里

会员类型

[...]

iterator Constant BidirectionalIterator
const_iterator常数BidirectionalIterator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM