인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

2juneyong님의 프로필 이미지
2juneyong

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

deque

deque강의에서 사이즈를 3으로 잡아뒀는데, 메모리에서는 4로 잡히는 이유가 뭘까요?

작성

·

307

0

deque강의 12:14분경에 deque<int> dq(3,1)로 해서 사이즈를 3으로 잡아뒀는데, push_back을 했을 때 메모리에서 확인하면 4개로 확인이되고 그렇게 설명하셨는데, 왜 4개인지 알 수 있을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.
deque강의에서 dq(3,1)로 deque 크기를 3으로 잡았지만, push_back을 했을 때 메모리에서는 4개의 공간이 차지되는 이유에 대해 궁금하시군요.

deque는 내부적으로 원형 버퍼로 구현되어 있습니다. 이러한 구조 때문에 메모리 공간을 효율적으로 사용하기 위해 추가적인 공간이 필요할 수 있습니다. 따라서, push_back 연산을 수행하면 더 많은 요소를 저장할 수 있는 충분한 메모리를 보장하기 위해 약간 더 큰 크기의 공간을 할당하는 것이 일반적입니다.

그렇기 때문에 dq(3,1)로 3개의 요소를 설정하더라도, 내부적으로는 조금 더 큰 크기인 4개의 공간을 할당하게 됩니다. 이는 deque가 추가 요소를 수용하는 데 있어서 효율적으로 동작할 수 있도록 하는 방법 중 하나입니다.

더 자세한 내용을 원하신다면, C++ 표준 라이브러리의 deque 구현 방식을 참고해보시길 추천드립니다. 감사합니다.

2juneyong님의 프로필 이미지
2juneyong

작성한 질문수

질문하기