• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

23.07.05 11:53 작성 조회수 222

0

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.07

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

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

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

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