บอกว่าฉันมีบางอย่างเหมือนนี้:
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
iterator ถูกปรับปรุงเป็น foo
เติบโตขึ้นหรือต้องจ้าค่าที่ให้ในฟังก์ชันโทรหา?
ฉันคิดว่า last
จะเปลี่ยนแปลงตั้งแต่มันเป็น pointer ต้องเป็นตำแหน่งแต่ต้องการคำสั่งยืนยัน