マルチインデックスをブースト:ハッシュ化されたインデックスのベクトルと、int型の複合キーを
-
19-09-2019 - |
質問
私はちょうど私の他の質問のではで学んだように、私が使用することができますcomposite_key
整数を有する構造体用std::vector
。今、私の質問は:私はhashed_indeciesで動作するように何とかこれを使用することができます。
ここでと同様の例THISするます:
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;
問題がstd::vector<int>
無し適当ハッシュ・キーではないこと(もちろん)です。私もmy_vec
のすべてのエントリからハッシュキーを生成するために、エレガントなラッパー(またはそのような何か)にこのコードを配置することはできますか?
他のヒント
あなたはベクトルがハッシュ可能にしたい場合は、
は、あなただけのそれは、しかし、あなた下さいハッシュ作り、hash<vector<int> >
でnamespace std
関数を作成することができます(ヒント:あなただけのいくつかのアプリケーションでは、最初の数の要素をハッシュで逃げることができるかもしれません)。これはstd::hash_set<vector<int> >
の仕事をしなければならない、と私は同様にあなたのより複雑なコンテナを考えてます。
所属していません StackOverflow