for(auto itr = (vector.begin()+c); itr!=(vector.begin()+b); ++itr) //b>c Nie przechodzę po wektorze, bo vector.begin()+c zwraca int? Jak zrobić to co tu mam na myśli, tylko poprawnie i ładnie? #cpp #programowanie
@pozdro_dla_niekumatych: początek i koniec jakiegoś zakresu, który chcę przejść (typ size_t) Teraz pomyślałem, że niepotrzebnie przecież iteratora używam, wystarczy zwykłą pętla od c do b i operator [] Także pytanie nieaktualne.
@psi-nos: mam nadzieję, że przed wejściem w pętlę sprawdzasz b i c względem tego, czy rzeczywiście b>c oraz b, c < vector.size(). Poza tym nazywanie zmiennej typu vector jako "vector" nie jest najlepszą praktyką.
@psi-nos: IMO jeśli plik nagłówkowy nie jest dołączony, to wtedy można nazwać zmienną vector. Gorzej z metodami, więc to takie usilnie szukanie dziury w całym :)
@dagon_666: dzięki, nie znałem jeszcze std::advance
for(auto itr = (vector.begin()+c); itr!=(vector.begin()+b); ++itr) //b>c
Nie przechodzę po wektorze, bo vector.begin()+c zwraca int? Jak zrobić to co tu mam na myśli, tylko poprawnie i ładnie? #cpp #programowanie
Teraz pomyślałem, że niepotrzebnie przecież iteratora używam, wystarczy zwykłą pętla od c do b i operator []
Także pytanie nieaktualne.
auto ic = std::advance(v.begin(), c);
auto ib = std::advance(v.begin(), b);
for(; ic != ib; ic++) ...
auto ic = v.begin();
auto ib = v.begin();
std::advance(ic,c);
std::advance(ib,b);
...
@dagon_666: dzięki, nie znałem jeszcze
std::advance