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

디네로님의 프로필 이미지
디네로

작성한 질문수

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

list #2

list #2 2:40~ 임의접근

해결된 질문

작성

·

172

0

안녕하십니까! 강의 정말 잘 듣고 있습니다!

다름이 아니라 list의 임의 접근 문법이 막힌 이유에서 속도차이에 대해서 뭔가 팍!하고 와닿지 않아 질문드립니다.

vector같은 경우 '연속된'주소에 데이터가 저장되기 때문에 n번째 데이터는 ++연산으로 '바로 옆주소' 로 이동하여 찾는다. 그렇기 때문에 비교적 빠르게 찾을 수 있다.

하지만 list의 경우 연속되지 않는 다른 어딘가에 다음 값을 저장하고 그 주소로 가는 주소값을 들고 있는데 vector와는 다르게 일일이 '주소값을 타고 워프'를 해줘야하기 때문에 시간이 많이 걸린다.

 

라고 이해를 했지만 위 두 경우의 속도 차이가 문법을 막을 만큼 차이가 어마어마하게 나는 건가요?!

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

데이터가 1억개 있다고 가정하고, 5천만번째 데이터를 찾아보시면 됩니다.
벡터라면 바로 접근이 가능이 가능하고,
리스트라면 5천만번 타고 타고 가야겠죠

디네로님의 프로필 이미지
디네로
질문자

아..! 뭔가 제가 다르게 이해하고 있었던 것 같네요
백터는 어차피 서로 연속된 주소이니 순서대로 하나하나 찾아 볼 필요 없이 바로 접근이 가능하고
리스트는 그렇지 않으니 데이터가 많을 수록 그만큼 타고가야해서 오래 걸리는 거군요!
무의식적으로 백터도 임의 접근할 때 마치for문을 돌린 것 마냥 찾는다고 생각하고 있어서 감이 안 왔던 것 같습니다.
지금보니 다소 어이없는 질문이었네요ㅎㅎ.. 감사합니다!

디네로님의 프로필 이미지
디네로

작성한 질문수

질문하기