inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

deque

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

341

2juneyong

작성한 질문수 5

0

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

c++

답변 1

0

인프런 AI 인턴

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

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

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

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

소스코드와 관련하여 질문드립니다

0

70

1

map 컨테이너의 emplace 함수에 대해

0

114

2

시작이 안되네요...!

0

97

2

EAX 명령어 실행 시 RAX의 상위 32비트가 초기화 되는 이유

0

126

1

리틀 엔디안 장점 질문합니다.

0

131

1

메모리 창에 주소를 넣었는데 영어 꺠짐

0

124

1

타입변환#2 build시 knight 인접 stack이 침범당했다는 error가 발생합니다.

0

94

2

map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.

1

139

2

hello world 부터 오류 ㅠㅜ

0

189

1

지역변수가 스택? 레지스터

0

132

2

마지막 문제 질문드립니다.

0

165

2

메모리창이 비활성화됩니다.

0

98

1

이중포인터 강좌 부분 질문있습니다.

0

145

1

2를 더하는 이유

0

133

1

메모리 주소 창 엔디안 질문 드립니다. 인프런 봇 답변도 괜찮습니다

1

111

1

해당 코드는 왜 오류가 날까요?

0

156

1

마지막 문제 질문 있습니다.

0

119

1

강의 마지막부분에 질문이 있습니다.

0

192

2

Field초기화

0

141

1

virtual과 override 차이

0

315

2

3:30 참조자 리턴

0

168

1

map 찾기

0

158

1

프로그램 질문드려요

0

260

1

캐스팅 질문

0

138

1