std::string 的比较和 == 之间的差异 [重复]
Posted
技术标签:
【中文标题】std::string 的比较和 == 之间的差异 [重复]【英文标题】:Differences between compare and == for std::string [duplicate] 【发布时间】:2021-09-15 13:55:08 【问题描述】:在两个字符串之间使用==
或std::string::compare
时得到不同的结果。
这是我正在执行的代码。
#include <iostream>
#include <string>
int main()
std::string str1 = "W";
char tmpChar = 'W';
std::string str2(1, tmpChar);
bool equalCompare = str1.compare(str2);
bool equalSign = (str1 == str2);
std::cout << "Compare result: " << equalCompare << std::endl;
std::cout << "Equal sign result: " << equalSign << std::endl;
return 0;
我想这与我创建 str2
的方式有关,但这是我发现将单个字符转换为字符串的方式。
【问题讨论】:
我看到那个帖子,我认为他们应该是平等的。 eeroika 的回答是对的。比较返回一个整数,我认为它是一个布尔值。区别在于铸件 【参考方案1】:比较和 == 用于 std::string 的区别
不同之处在于它们返回的内容。 ==
当字符串比较相等时返回 true,否则返回 false。 compare
当*this
在参数之前返回负整数,当字符串相等时返回零,当参数在*this
之前时返回正整数。
【讨论】:
对!我误读了文档。谢谢!以上是关于std::string 的比较和 == 之间的差异 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用模板在QString和std :: string之间进行自动转换吗?
linux C++获取两个std::set容器差异(容器元素差异)(容器元素差别)std::set_differencestd::inserter