2014-08-31 4 views
2

죄송합니다. 이미 문의 하셨다면 ...링크 된 목록 대 배열

왜 벡터를 통해 링크 된 목록을 사용해야합니까? 모든 포인터 오버 헤드가 마음에 들지 않습니다 ...

내 지식 : 여분의 포인터가 없기 때문에 벡터가 더 빠르고 작고 구현하기 쉽습니다. 또한 연결 목록은 노드가 완전히 임의의 메모리 위치에 있으므로 코드가 느려지므로 공간 지역성 원칙을 이용하지 않는다고 생각합니다. 링크 된 목록을 사용하면 원치 않는 캐시 누락이 증가합니다. 당신이 만약 지금, 연결리스트 벡터 이상 사용해야 여기서리스트의 장점은 동적 메모리 할당에 오버 플로우를 방지 할 수 있다는 것입니다 물론

... 요약에서

, 내 질문은 ... 할 ? 어떤 데이터 구조체를 더 선호합니까?

+0

Google 또한 좋은 친구입니다. –

+0

성능 차이가 충분히 중요하다고 판단한 경우 벡터 및 사용 목록의 기본값으로 사용합니다. – chris

+0

[tag : c] 태그가 주어지면, 이것은 단지'std :: list'에 관한 것이 아니라 일반적으로 연결된리스트에 관한 것입니다. http://stackoverflow.com/q/2429217/179910 –

답변

1

링크 된 목록은 일정 시간 내에 항목을 이동하거나 삽입/푸시 또는 팝하지 않고 항목을 삽입하거나 제거하려는 경우와 요소 수를 알지 못하고 임의 액세스가 필요하지 않은 경우에 사용됩니다 . 자세한 내용은 this을 참조하십시오.