Spun că am avea ceva de genul asta:
void myFunk(std::vector<T>& v, std::vector<T>::iterator first, std::vector<T>::iterator last) {
while (first != last) {
if ((*first) > (*last)) {
T someT;
v.push_back(someT);
}
first++;
}
}
int main(){
std::vector<T> foo = {some, T, values};
myFunky(foo, foo.begin(), foo.end())
return 0;
}
Acest lucru ar duce la o buclă infinită, sau s-ar fi sfârșit după foo.size()
iterații? Cu alte cuvinte, ar last
iterator fi actualizat, după cum foo
a crescut, sau și-ar păstra valoarea dată în apel de funcție?
Presupun last
s-ar schimba, deoarece este un pointer la o poziție, dar ar dori o confirmare.