比较两个不同的字符串时,C++比较什么?

What is C++ comparing when comparing two different strings?

本文关键字:比较 字符串 C++ 什么 两个      更新时间:2023-10-16

下面的代码当我检查 K 或 Y 是否更大时,使用什么方法来比较两个不同的字符串? 位数?

#include <iostream>
#include <string>
using namespace std;
int main() {
string y = "can't";
string k = "solve";
if(k > y){
cout << "k is bigger";
}else {
cout << "y is bigger";
}
return 0;
}
k is bigger

字符串比较是字典比较:

所有比较都是通过 compare(( 成员函数(它 本身是根据 Traits::compare((( 定义的:

如果 lhs 和 rhs 的大小相等,则两个字符串相等,并且 LHS 中的每个字符在 RHS 中具有相同的字符 位置。

排序比较是按字典顺序完成的——比较 由等效于 std::lexicographical_compare 的函数执行。

这就是词典比较的工作原理:

词典比较是一般的比较 用于在字典中按字母顺序对单词进行排序;它涉及 按顺序比较在 中具有相同位置的元素 两个范围相互对应,直到一个元素不等效于 另一个。

这些关系运算符在头文件字符串中重载。 所有用于字符串操作的关系运算符都可以在下面的链接中找到。

http://www.cplusplus.com/reference/string/string/operators/

希望这能消除您的疑虑。