unordered_setのハッシャとして定義可能なファンクタを使用しようとしています。問題は直面していますが、渡されたファンクタを初期化する方法がわかりませんテンプレートパラメータそれはこのようなものでしょう。unordered_setハッシュ関数として定義可能な状態のファンクタを使用する
class A{
private:
class Hasher{
private:
int a;
public:
Hasher(int val=3):a(val){};
size_t operator()(const string & s) const{
return s[0]*a;
}
};
unordered_set<string,Hasher??> us;
int hasher_val;
public:
A(int h_val):hasher_val(h_val){};
}
問題は、「3」と異なる値に「a」をどのように定義できますか?
http: /stackoverflow.com/a/14182624/3313064では、0を渡すか、別のインスタンスからデフォルトのバケットカウントを取得することができます。 –
ありがとう!それはまさに私が探していたものです。@ christian-hacklのように、ドキュメントでは0の値が最初のバケットサイズの完璧な値であることを示唆しています。 – user3325504