첫눈에 이중 연결 목록은 합리적인 것처럼 보이지만 구현하기 시작하면서 현재 위치를 추적하는 문제에 직면했습니다. std :: list iterator를 사용했지만 극단적 인 경우 (다음 부분 참조)를 처리하는 것은 고통이되었습니다. 그래서 여기 DS에 대한 요구 사항 :미디어 재생 목록의 데이터 구조는 무엇입니까?
- 의 요소의 순서
- 효과적인 삽입 유지 중간
- 삽입/반복기
- O (N), 랜덤 액세스가 아닌 무효화하지 지워 문제
연결된 목록이 가장 적합합니다. 현재 위치에 커서 (반복자) 용
요건 :
- 양방향
- 처음에
end
위치를 나타낸다 end
위치 반복자 결국 소자를 삽입 한 후, 다음 반복기 어드밴스 이동 이 요소에. 같은 재생 목록이 반대의 경우에 대한- 동일 비어 이전하는 경우의 행동 : 처음에 반복자는,
push_front
는 뒤쪽으로 이동하면 새로 추가 된 요소
를 구현하는 가장 좋은 방법은 무엇을 갈 것인가? 그것을위한 라이브러리가 있습니까 (C++)?
std :: list sounds perfect. 뭐가 문제 야? –