Usando el operador menor que el de comparación para cadenas
Estoy siguiendo un tutorial para C ++ y observando cadenas y sobrecargas con operadores como + =, ==,! = Etc, actualmente tengo una instrucción if simple
if(s1 < s2)
cout << s2 <<endl;
else
if(s2 < s1)
cout << s1 << endl;
else
cout << "Equal\n";
pero, ¿cómo funciona esto y cómo el programa decide qué cadena es mayor que otra? Mirando alrededor he encontrado una plantilla básica de decleración:
template<class charT, class traits, class Allocator>
bool operator< ( const basic_string<charT,traits,Allocator>& lhs,
const basic_string<charT,traits,Allocator>& rhs );
¿Esto define cómo <funciona? Si es así, ¿qué significa / hacer?
¿También los siguientes operadores tienen algún significado para las cadenas? - = y * =
¡Cualquier consejo es muy apreciado!