迭代一次的时间复杂度是多少std::set
/std::multiset
/std::map
/std::multimap
?我相信它与集合/地图的大小是线性的,但不太确定。语言标准中有规定吗?
在C++11工作草案中,可以找到答案[迭代器.要求.一般] p8 https://timsong-cpp.github.io/cppwp/n3337/iterator.requirements.general#8:
所有类别的迭代器只需要那些函数
对于给定类别可以在恒定时间内实现(摊销)。
由于迭代器上的每个操作都必须是恒定时间,因此迭代n
元素必须是O(n)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)