Dire que j'ai quelque chose comme ceci:
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;
}
Serait-il conduire à une boucle infinie, ou serait-ce la fin après foo.size()
itérations? En d'autres termes, l' last
itérateur être mis à jour aussi foo
a grandi, ou serait-il conserver la valeur indiquée dans l'appel de fonction?
Je suis en supposant que last
pouvait changer, puisque c'est un pointeur vers une position, mais voudrais une confirmation.