为什么这两个代码段给出不同的结果

我试图了解C ++字符串上的“ <”运算符,并尝试了一些测试用例。我意识到我认为应该表现相同的两个代码给出了不同的结果。以下是代码,这是什么原因?

  string s="test";
  string k="tes";
  cout<<(s<k)<<endl; //returns false so it prints 0
  cout<<("test"<"tes")<<endl; // returns true so it prints 1