저는 C++의 처음부터 완전한 기능을 갖춘 추상 데이터 형식으로 해시 맵을 구현하려고합니다. 특히, 식별 키의 오름차순으로 모든 레코드를 트래버스 할 수있는이 데이터 컨테이너에 대한 반복자를 제공하려고합니다. 그리고이 부분은 나를 혼란스럽게 만들고 어떻게해야할지 모르겠습니다. Btw, 해싱 기능에 의해 나는 단방향 목록과 별도의 연결을 사용하기로 결정했습니다. 한 가지 해결책은 모든 요소를 적절한 순서로 바인딩하는 목록을 만드는 것입니다.이 목록은 삽입 프로세스 자체에서 보호됩니다. 그러나 적어도 삽입에 관해서는 해싱의 이점을 많이 손상시킬 것입니다. 특히 ADT의 목적을 살펴보면 트래버스 기능은 상대적으로 거의 사용되지 않습니다. 간단히 말해, 어떤 종류의 솔루션을 제공해야합니까? 전문 라이브러리는 사용할 수 없습니다.해시 맵과 순서 순회
참고 :
나는 해시 맵이 무엇인지 알고 있다는 그것의 격식을 중요시하는 정의에 의해 본질적으로 정렬되지 않은 것입니다. 어쩌면 내가 다르게 넣어야했는데, 기본적으로 해시 맵과 iterator 기능을 제공하는 추가 라이트 웨이트 모듈로 구성된 ADT를 구축하여 ADT 사용자가 키의 오름차순으로 레코드를 타임 아웃 할 수 있습니다.
입니다이 방법을 반복시 메모리 요구 사항을 두 배로 것을 명심하십시오 필요에 따라 저장되고 정렬됩니다. –
이것이 개념/학교 과제 증명 인 경우 아래 나의 대답을 참조하십시오. 이것이 현실 세계의 문제라면 많은 이해가 안되기 때문에 요구 사항을 다시 생각해 봐야합니다. – Hilikus
@Hilikus 기쁜 소식을 듣고 기꺼이 들었습니다. 구현하기 위해 내 반응이었습니다. 그것은 참으로 학교 임무입니다. –