マルチインデックスをブースト:ハッシュ化されたインデックスのベクトルと、int型の複合キーを

StackOverflow https://stackoverflow.com/questions/1701022

  •  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> >の仕事をしなければならない、と私は同様にあなたのより複雑なコンテナを考えてます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top