Wpis z mikrobloga

Iteruję się po mapie , klasycznie:

for (map::iterator i = to_calc.begin(); i != to_calc.end(); i++ )
i chcę sprawdzić czy obecny element iteracji jest mniejszy od danej liczby i czy NASTĘPNY wyraz iteracji jest większy od danej liczby - i tak sobie to wymysliłem:

if ((i->first < arg) && (next(i,1)->first > arg))
1. Czy to działa?
2. Czy to nie powoduje np przesunięcia iteratora itp?

#programowanie #cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Albo przetestuj albo spójrz do dokumentacji i sprawdź czy next() modyfikuje pierwszy parametr. Do tego uważaj na zakresy przy ostatnim elemencie.

++i będzie szybsze jak sobie sam napiszesz kompilator i nie wyoptymalizujesz tego.
  • Odpowiedz