Tôi đang di chuyển qua một vectơ có tự động (mã được đính kèm). Trong khi đi ngang qua, tôi cũng phụ thêm một số phần tử ở phía sau. Tôi đã không mong đợi đầu ra mà tôi nhận được.Hành vi bất thường với tính năng tự động khi di chuyển ngang qua một vector động
#include <iostream>
#include <vector>
using namespace std;
vector <int> dynamic_vector;
void access()
{
for (auto i : dynamic_vector) {
if (i == 3) {
dynamic_vector.push_back(4);
dynamic_vector.push_back(5);
}
cout << i << endl;
}
}
int main() {
dynamic_vector.push_back(1);
dynamic_vector.push_back(2);
dynamic_vector.push_back(3);
access();
return 0;
}
Output:
1
2
3
Tôi đã chờ đợi tất cả các số 1-5 sẽ được in ra. Tôi không thể hiểu cách di chuyển bằng tính năng tự động hoạt động như thế nào?
Re * Tôi đã hy vọng tất cả các số từ 1 đến 5 sẽ được in * - Tôi mong đợi những con quỷ mũi, bản thân mình. Đây là hành vi không xác định, và ma quỷ mũi là kết quả kinh điển từ việc gọi hành vi không xác định. –