Qt-Qt QString 的比较方法?
Qt 中的 QString 有两种比较方法,一个是 compare 函数,一个是 “==” 操作符,它们都可以进行 QString 之间或和其他字符串的比较,这两种比较方法有什么不同啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Qt 中的 QString 有两种比较方法,一个是 compare 函数,一个是 “==” 操作符,它们都可以进行 QString 之间或和其他字符串的比较,这两种比较方法有什么不同啊?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
这是QString==的源码
bool operator==(const QString &s1,const QStringRef &s2)
{
return (s1.size() == s2.size() &&
qMemEquals((const ushort *)s1.unicode(),
(const ushort *)s2.unicode(), s1.size()));
}
这是QString compare的代码
int QString::compare(const QString &other) const
{
return ucstrcmp(constData(), length(), other.constData(), other.length());
}
由于这两个函数都有很多的重载形式,所以选出两个具有代表性的出来说明问题。
从返回值来看可以知道,==相等的时候返回true,不等返回false。而compare则是按字典顺序的大于小于等于返回小于0,等于0和大于0三种结果。