upd*_*liu 20 c++ big-o stl std time-complexity
什么是迭代std::set/ std::multiset/ std::map/ 的时间复杂度std::multimap?我相信它在集合/地图的大小上是线性的,但不是那么肯定.是否在语言标准中指定?
Mar*_*som 42
在C++ 11标准N3337草案中,答案可以在第24.2.1段第8段中找到:
所有迭代器类别仅需要在恒定时间内(摊销)可以为给定类别实现的那些函数.
由于迭代器上的每个操作必须是恒定时间,因此迭代n元素必须是O(n).
Chr*_*gis 11
我相信它在集合/地图的大小上是线性的,但不是那么肯定.
那是正确的.迭代整个集合或地图是摊销的 O(N)