Code 1

-----------------------

v.push_back(1);

v.push_back(2);

    for(int i=0;;i++){

        if(v[i]>10)break;

        printf("%d ",v[i]);

        v.push_back(v[i]+2);

    }

-----------------------


Code 2

-----------------------

v.push_back(1);

v.push_back(2);

    for(auto i:v){

        if(i>10)break;

        printf("%d ",i);

        v.push_back(i+2);

    }

-----------------------


위의 두 개의 코드가 다르게 실행되는 이유가 무엇인가요?

auto 남발하면 꼬여서 그런 건가요...?


emplace_back이랑 push_back 차이 실험해보려고 해봤는데 다른 고민이 생기네요... 끙...