-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
블록 내에서 선언한 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
Soobak
2023.10.12
안녕하세요, 답변 도우미 Soobak 입니다.
복사되어 데이터가 유지됩니다.
wheelList[i] = wheel;
코드 부분에서 wheel
에 있는 데이터는 whellList[i]
에 복사되게 됩니다.
따라서, wheel
이 블록을 벗어나서 파괴되어도, wheelList
에 있는 복사된 데이터가 안전하게 보관됩니다.
답변 1