Multi-Boost Indice composite clé du vecteur et int pour les indices hachurées
-
19-09-2019 - |
Question
comme je viens d'apprendre en dans mon autre question , je pourrais utiliser un composite_key
pour une structure, qui a une std::vector
et un nombre entier. Maintenant, ma question est: Puis-je utiliser une certaine façon de travailler avec hashed_indecies
Voici un exemple similaire à CE :
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;
Le problème est (bien sûr) qu'un std::vector<int>
est pas hachage-clé appropriée. Puis-je mettre ce code dans un emballage élégant (ou quelque chose comme ça), pour produire un hachage clé de chaque entrée de my_vec
ainsi?
Autres conseils
Si vous voulez vecteur à hashable, vous pouvez simplement écrire une fonction hash<vector<int> >
dans namespace std
, ce qui en fait cependant vous hachage s'il vous plaît (indice: vous pourriez être en mesure de sortir avec hachant que les premiers éléments dans certaines applications). Cela devrait rendre le travail de std::hash_set<vector<int> >
, et je pense que votre conteneur plus complexe aussi bien.