• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

블록 내에서 선언한 vector를 이차원 vector에 넣었을 때

23.10.11 19:57 작성 조회수 95

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님의 프로필

Soobak

2023.10.12

안녕하세요, 답변 도우미 Soobak 입니다.

복사되어 데이터가 유지됩니다.

wheelList[i] = wheel; 코드 부분에서 wheel 에 있는 데이터는 whellList[i] 에 복사되게 됩니다.
따라서, wheel 이 블록을 벗어나서 파괴되어도, wheelList 에 있는 복사된 데이터가 안전하게 보관됩니다.