私はsetメソッドのデータ型でC++の作業をしています。この方法は、C++でセット型のメソッドを解釈する方法
set < string, cmp > genPerm (const string&);
ここCMPはクラス
である私は、メソッドのこれらのタイプを解釈する方法がわからない4時間から私はセットを検索し、理解しているが、各時間の問題が発生すると、タスクがないからです解決される。いずれも助けてくれる
私はsetメソッドのデータ型でC++の作業をしています。この方法は、C++でセット型のメソッドを解釈する方法
set < string, cmp > genPerm (const string&);
ここCMPはクラス
である私は、メソッドのこれらのタイプを解釈する方法がわからない4時間から私はセットを検索し、理解しているが、各時間の問題が発生すると、タスクがないからです解決される。いずれも助けてくれる
これは、constを参照してstd::string
パラメータを受け入れるタイプstd::set<std::string, cmp>
の関数宣言です。 std::setコンテナもタイプです。したがって、あなたの関数はその型です。 <std::string, cmp>
テンプレートの最初のパラメータは、std::string
であるセットに格納されている要素のタイプを決定します。 Setは、一意の要素のソートされたコンテナです。セットテンプレートの2番目のパラメータは、要素のソート方法を決定するkey comparison functionです。あなたのケースでは、あなたのcmp
クラスによってカスタムソートが提供されています。おそらく()
演算子がオーバーロードされ、実際にはファンクタです。関数の戻り値の型は次のとおりです。カスタムコンパレータcmp
を持っていなかった場合は
std::set<std::string, cmp>
は、戻り値の型は、おそらく次のようになります:
std::set<std::string, std::less<std::string>, std::allocator<std::string>>
std::set<std::string, cmp, std::allocator<std::string>>
に相当します
実際には:
std::set<std::string>
です。
このメソッドの戻り値の型は何ですか? –
@AthaulRai私は答えを更新しました。 – Ron
「std :: set'(http://en.cppreference.com/w/cpp/container/set)の参考になるだけでもいいですか?またはおそらく[良い初心者の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)? –
あなたが理解できない部分についての情報を追加することができます。私は 'string'パラメータをとり' set'を返す関数として 'genPerm'を参照しています。 int f(int x);と非常によく似ています。 –