0

したがって、次のようにコードをコンパイルすることはできません。

std::vector<std::string> split = split("A String Blah");  

このメソッド シグネチャを使用すると、次のようになります。

std::vector<std::string> split(const std::string& s)  

複数の引数が必要だと言っているからです。文字列だけでは十分ではないのはなぜですか?

4

1 に答える 1

6

この行がある場合:

std::vector<std::string> split = split("A String Blah"); 

C++ コンパイラはsplit、右側で参照されてsplitいる が左側で宣言されているものと同じであると見なします。その結果、実際には astd::vector<std::string>は 1 つの引数を取る関数ではないため、エラーが発生します。

これを修正するには、変数の名前を変更することを検討してください。

std::vector<std::string> theSplit = split("A String Blah"); 

お役に立てれば!

于 2013-02-09T20:25:31.277 に答える