Search code examples
c++stltime-complexitybig-ostd

What's the time complexity of iterating through a std::set/std::map?


What's the time complexity of iterating through a std::set/std::multiset/std::map/std::multimap? I believe that it is linear in the size of the set/map, but not so sure. Is it specified in the language standard?


Solution

  • In the C++11 working draft, the answer can be found in [iterator.requirements.general] p8:

    All the categories of iterators require only those functions that are realizable for a given category in constant time (amortized).

    Since each operation on an iterator must be constant time, iterating through n elements must be O(n).