2017-12-04 7 views
0

私はsetメソッドのデータ型でC++の作業をしています。この方法は、C++でセット型のメソッドを解釈する方法

set < string, cmp > genPerm (const string&); 

ここCMPはクラス

である私は、メソッドのこれらのタイプを解釈する方法がわからない4時間から私はセットを検索し、理解しているが、各時間の問題が発生すると、タスクがないからです解決される。いずれも助けてくれる

+7

「std :: set'(http://en.cppreference.com/w/cpp/container/set)の参考になるだけでもいいですか?またはおそらく[良い初心者の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)? –

+4

あなたが理解できない部分についての情報を追加することができます。私は 'string'パラメータをとり' set'を返す関数として 'genPerm'を参照しています。 int f(int x);と非常によく似ています。 –

答えて

2

これは、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> 

です。

+0

このメソッドの戻り値の型は何ですか? –

+0

@AthaulRai私は答えを更新しました。 – Ron

関連する問題