Wpis z mikrobloga

Mam tu iterator multimapy ustawiony na początek czyli:
multimap maps;

multimap::iterator itr;

itr = maps.begin();

i teraz jak zrobić by wskazywał 2 pozycję?
itr = maps.begin()+2; nie działa xD

ale już

itr = maps.begin()++;

itr = maps.begin()++;

Działa

Chodzi mi o to że wiem na której pozycji będzie element, i nie chce używać
itr = maps.find();
bo to chyba będzie strata czasu
#cpp
  • 5
  • Odpowiedz
@kacpervfr: primo random access nie jest w interfejsie multimapy więc z definicji nie możesz dostać "n-tego" elementu, secundo implementacja mapy najczesciej jest red black tree i nie zajmuje ciągłego obszaru pamięci tak jak to założyłeś
  • Odpowiedz