我想知道如何比较2 QStringList
并以以下方式显示结果:
我有2个QPlainTextEdit
A和B
例如,在A中,我有10行,每行6个数字。
在B中,例如,我有100行,每行6个数字;
我想做的是:取B中的每一行,然后与A中的所有行进行比较。如果在一行比较中,所有6等于int n6(例如)将加1。如果只有5等于int n5将加1,依此类推。
我已经尝试了一些方法,但是没有一个起作用。如果您能对此有所了解,我将不胜感激。
最佳答案
从计算每个字符串的匹配位数开始
int matchingDigits(QString str1, QString str2)
{
int matches = 0;
int minSize = str1.size() < str2.size() ? str1.size() : srt2.size();
for (int pos = 0; pos < minSize; ++pos)
{
if (str1.at(pos) == str2.at(pos) ++matches;
}
return matches;
}
现在,您将所有字符串相互比较(遍历两个StringList),如果
matchingDigits()
是> 0
,则可以增加结果计数器。QStringList listA;
QStringList listB;
foreach (QString a, listA)
{
foreach (QString b, listB)
{
int matches = matchingDigits(a, b);
if (matches > 0)
{
// do something fancy
}
}
}
关于c++ - 如何比较2个QStringList并显示结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26317994/