해시 지수에 대한 벡터 및 int의 복합 키 키
-
19-09-2019 - |
문제
내가 방금 배운 것처럼 내 다른 질문에서, 나는 a를 사용할 수있다 composite_key
구조물의 경우 std::vector
그리고 정수. 이제 내 질문은 다음과 같습니다. 어떻게 든 Hashed_indecies와 함께 작업 할 수 있습니까?
여기와 비슷한 예입니다 이것:
struct unique_property
{
//the pair of int and std::vector<int> shall be unique
int my_int;
std::vector<int> my_vec;
};
typedef multi_index_container<
unique_property,
indexed_by<
hashed_unique< // indexed by my_int and every entry of my_vec
composite_key<
street_entry,
member<unique_property,int,&unique_property::my_int>,
member<unique_property,std::vector<int>,&unique_property::my_vec>
>
>,
random_access< >
>
> property_locator;
문제는 물론 a std::vector<int>
적합한 해시 키가 아닙니다. 이 코드를 우아한 래퍼 (또는 그와 비슷한)에 넣어 모든 항목에서 해시 키를 생성 할 수 있습니까? my_vec
또한?
해결책
제안에서 코드 스 니펫을 사용하십시오 여기. 작동해야합니다. 나는 거기에 내 댓글을 추가했습니다.
다른 팁
벡터가 해시 가능 해지려면 hash<vector<int> >
기능 namespace std
, 그러나 해시를 만들기로 만듭니다 (힌트 : 일부 응용 프로그램에서 처음 몇 가지 요소 만 해싱으로 도망 갈 수 있습니다). 이것은 만들어야합니다 std::hash_set<vector<int> >
일을하고 더 복잡한 컨테이너도 생각합니다.
제휴하지 않습니다 StackOverflow