For such C++ STLs associative containers like std::set, std::multiset, std::map or std::multimap iterators.
How iteratorName++/iteratorName-- works?
Does each element have 2 pointers for the very less/more than itself? If so, how does it keep such information?
Does it take O(1), amortized or logarithmic time?
And aside question, how begin() method works? Is it considered with each insertion/removal?