[STL] container 원소의 할당에 대해서..
글쓴이: assa / 작성시간: 화, 2005/08/09 - 9:15오전
예를 들어
vector< int > a; for(;;){ a에 값을 입력. } vector< int > b; b= a; for(;;){ b에 추가적으로 값을 입력. }
이렇게 해서 a.size() b.size()를 보면 서로 다름을 알 수 있는데요
그러면 a의 원소들은 그대로 메모리에 존재하고, a에게서 할당받
은 b의 원소들도 메모리에 존재하나요?
그러면 메모리가 2배로 늘어나지 않나요?
만약 그렇다면 메모리를 어떻게 효율적으로 처리해야 하는지 궁금
합니다..
책을 보니까, b= a; 일때 b의 원소가 미리 존재하더라도 지워지고
a의 원소들을 할당받는다고만 되어 있는데. 메모리쪽으로는 언급
이 없어서요...ㅠㅠ
Forums:
Re: [STL] container 원소의 할당에 대해서..
예. 각각 별도의 메모리를 차지합니다.
물론이죠.
책에서 메모리에 대한 언급이 없는 것은 당연합니다. 표준에서도 아무런 언급이
없으니까요. 대입 연산에서의 메모리 관리는 구현체의 선택 사항이 되겠습니다.
어떤 것을 원하시는지 좀 모호한데, vector를 2개 쓰는 것이 불필요하다고 생각되시면
하나만 쓰면 됩니다. 원본과 사본이 각각 있어야 한다면 더 많은 메모리가 필요해지는
것은 어쩔 수 없는 것이고요.
댓글 달기