在QStringList中查找重复的字符串并获取重复的计数

时间:2016-12-06 16:05:43

标签: c++ qt

有没有办法获得重复字符串在QStringList中的次数并将其与字符串本身分组?

例如,如果列表包含[" a"," a"," a"," a"," b"," b"," b"," c"," c"]

我可以把它变成像

这样的东西吗?

a x4

b x3

c x2

我现在唯一的解决方案是使用QList::contains(),然后用int添加它们但问题是有500个字符串可以进入QStringList所以我不想要用500英寸创建500个字符串。

1 个答案:

答案 0 :(得分:4)

试试这个:

QMap<QString,int> countOfStrings;
QStringList listOfStrings;
listOfStrings<<"a"<<"b"<<"c"<<"a";
for(int i=0;i<listOfStrings.count();i++)
{
    countOfStrings[listOfStrings[i]]++;
}

QMap默认int s为0.如果它第一次出现字符串,它会通过调用(newStr,0)自动创建一个带countOfStrings[newStr]的条目

您也可以qDebug()<<countOfStrings;