【发布时间】:2021-12-29 13:48:57
【问题描述】:
假设我有这样的事情:
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;
}
这会导致无限循环,还是会在foo.size() 迭代后结束?换句话说,last 迭代器会随着foo 的增长而更新,还是会保留函数调用中给定的值?
我假设last 会改变,因为它是一个指向位置的指针,但需要一些确认。
【问题讨论】:
标签: c++ vector iterator controls flow