Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 903
updogliu Avatar asked Aug 02 '12 14:08

updogliu


1 Answers

In the draft C++11 standard N3337 the answer can be found in § 24.2.1 paragraph 8:

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).

like image 59
Mark Ransom Avatar answered Sep 17 '22 12:09

Mark Ransom