我想知道如何比较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/

10-11 23:20
查看更多