Why would anyone use set instead of unordered_set?

c++, c++11, stdset, stl, unordered-set

Solution

When, for someone who wants to iterate over the items of the set, the order matters.

Problem

C++0x is introducing `unordered_set`, which is available in `boost` and many other places. What I understand is that `unordered_set` is hash table with `O(1)` lookup complexity. On the other hand, `set` is nothing but a tree with `log(n)` lookup complexity. Why on earth would anyone use `set` instead of `unordered_set`? I.e., is there a need for `set` anymore?

Original source

Related problems