세트 또는 멀티 세트에 <Object A, Relation R, Object B>
유형의 서로 다른 릴레이션을 (약 100-1000) 저장하고 싶습니다. A
및 (A,R)
을 검색 할 수 있지만 (A,R,B)
은 검색 할 수 없으며 동일한 A
및 R
과 약간의 (< 5) 개의 관계가 있으므로 선형 검색을 사용하는 것이 좋습니다.세트 대 멀티 세트
그것이 집합의 관계를 저장하는 것이 좋습니다 (A
, R
및 B
으로 정렬) 또는 A
및 R
에 의해 주문한 MULTISET에 저장할?
편집 : 해시 테이블을 살펴 보았지만 반복이 설정된 반복만큼 빠르지 않으며 패턴 일치도 많은 반복이 필요합니다. 은 (는 반복의 시작을 찾기 위해 한 번 검색 한 후 같은 객체 A를 모든 관계가 완료 될 때까지 반복해야합니다.) 당신이 가지고 수집 한 의견에서
감사합니다, 라그나
벡터에 저장하는 것은 어떻습니까? 1000 가지 요소의 경우, 가장 빠른 구현이라는 사실을 알게되었습니다. –
프로그램은 집합/벡터를 매우 자주 검색 할 것입니다. 다른 관계에서 많은 패턴 일치를해야하기 때문입니다 (프로그램은 기하학 문제 해결 자이며 특정 정리를 적용 할 수있는 상황을 찾아야합니다) – Ragnar
@Ragnar : 질문은 실제로 검색이 얼마나 자주 수행되어야하는지가 아니라 맵의 복잡한 구조가 단순한 벡터 구조에 대해 보상하는 경우입니다. 맵을 사용하기 전에 지불해야하는 요소의 수는 사람들이 기대하는 것보다 훨씬 높습니다. –