Использование оператора сравнения менее чем для строк

Я следую учебному пособию по 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 );

это определяет, как <работает? если так, что означает / делает?

также имеют ли следующие операторы какое-либо значение для строк? - = и * =

Любые советы высоко ценится!

Ответы на вопрос(2)

Ваш ответ на вопрос