Блог пользователя multisystem

Автор multisystem, 12 лет назад, По-английски

Assuming the following snippet of code

set<int>::iterator it = st.begin();
it++;

What's the order of it++. Does it take O(log n)?

Теги c++, stl
  • Проголосовать: нравится
  • +12
  • Проголосовать: не нравится

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится

Yes.

»
12 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +29 Проголосовать: не нравится

It's O(1) amortized, as it just traverses binary tree going up and down, and O(log n) in a worst case for one ++ operation, as std::set uses red-black tree which has logarithmic height.