私は C++ のチュートリアルに従っており、文字列を見て+=
、==
、!=
などの演算子でオーバーロードしています。現在、単純な if ステートメントがあります。
if(s1 < s2)
cout << s2 <<endl;
else
if(s2 < s1)
cout << s1 << endl;
else
cout << "Equal\n";
しかし、これはどのように機能し、プログラムはどの文字列が他の文字列よりも大きいかをどのように判断するのでしょうか? 周りを見回すと、基本的なテンプレート宣言が見つかりました:
template<class charT, class traits, class Allocator>
bool operator< ( const basic_string<charT,traits,Allocator>& lhs,
const basic_string<charT,traits,Allocator>& rhs );
これはどのように<
機能するかを定義していますか?もしそうなら、どういう<charT,traits,Allocator>
意味ですか/するのですか?
また、次の演算子は文字列に対して何らかの意味がありますか? -=
と*=