比较两个不同的字符串时,C++比较什么?
What is C++ comparing when comparing two different strings?
下面的代码当我检查 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/
希望这能消除您的疑虑。
相关文章:
- 视觉C++使用 map 来比较字符串中的每个单词
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 比较字符串的 GetLine 工作一次,然后比较之后不起作用
- C++使用关系运算符比较字符串
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- C++ TCP 服务器比较字符串失败
- 如何在不复制的情况下比较字符串的一部分?
- 比较 C++ 字符串打印中的两个整数数组
- 如何比较字符串形式的临时变量
- std::out_of_range 比较字符串中的符号时出错
- 比较字符串大小写不区分的简单方法是什么?
- 比较字符串忽略 NUL
- 比较字符串(arduino)时出现问题
- 如何在C++中比较字符串
- 比较字符串对象等于向量中的元素
- C 比较字符串操作速度
- 需要比较字符串的某些元素
- 比较字符串 .c_str() 和普通字符串的差异
- C 比较字符串的字符
- 通过使用两个不同的队列比较字符串