인프런 커뮤니티 질문&답변
블록 내에서 선언한 vector를 이차원 vector에 넣었을 때
해결된 질문
작성
·
168
1
블록 안에서 선언한 vector은 블록 밖으로 나가면 회수되는 것으로 알고 있습니다.
그런데 만약 이 vector를 블록 밖에서 선언한 이차원 vector에 넣었을 때 어떻게 되나요?
실행은 잘 되는데 이게 컴파일러가 길이를 유지시켜주는 건지, 아니면 이차원 vector에 복사되는 것인지 궁금합니다.
    vector<vector<int>> wheelList(NUMBER );
    //caching
    {
        vector<int> wheel(SIZE);
        string temp;
        for(int i = 0; i < 4; i++){
            cin >> temp;
            for(int j = 0; j < NUMBER; j++){
                wheel[j] = temp[8 - j - 1] - '0';
            }
            wheelList[i] = wheel;
        }
    }답변 1
1
안녕하세요, 답변 도우미 Soobak 입니다.
복사되어 데이터가 유지됩니다.
wheelList[i] = wheel; 코드 부분에서 wheel 에 있는 데이터는 whellList[i] 에 복사되게 됩니다.
따라서, wheel 이 블록을 벗어나서 파괴되어도, wheelList 에 있는 복사된 데이터가 안전하게 보관됩니다.





