강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

king님의 프로필 이미지
king

작성한 질문수

홍정모의 따라하며 배우는 C++

블록 내에서 선언한 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 에 있는 복사된 데이터가 안전하게 보관됩니다.

king님의 프로필 이미지
king

작성한 질문수

질문하기