c++ auto it 遍历改值的坑

for(auto it:arr)

利用这样遍历修改容器的值,是不可以成功修改的。

#include <iostream>
#include <vector>
using namespace std;
vector<int> arr;
void show1()
{
    for (auto it : arr)
    {
        it++;
    }
}
void show2()
{
    for (int i = 0; i < arr.size(); i++)
    {
        arr[i]++;
    }
}
int main()
{
    arr.push_back(1);
    arr.push_back(2);
    arr.push_back(3);
    arr.push_back(4);
    show1();
    show2();
    for (auto it : arr)
        cout << it << endl;
    return 0;
}

image

posted @ 2022-11-26 15:10  请去看诡秘之主  阅读(157)  评论(0编辑  收藏  举报