qt中QList去重与统计重复次数

目录

一、去除QList中得重复值

二、找出list得重复值和重复值得个数


       

本来我是想建立三个QList链表,

        A链表放原始数据

        B链表放不重复得数据

        C链表放每个数据重复得总数

        但是很快我就发现了一个问题,我不知道如何把B和C连接起来,以及如何让QList得某个值自加1。

        在通过百度得帮助下,我发现了可以用Map键值对来解决这个问题。

        参考链接:如何找出list中重复的数据以及重复数据的个数

        由于该链接得语法是Java,所以我自己做了些修改。具体操作过程如下:

一、去除QList中得重复值

        ps:代码写在Mainwindow.cpp中

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include 
#include 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QList m_ListAllSrt;
    m_ListAllSrt.clear();

    m_ListAllSrt = {"a", "a", "b", "b", "c", "c"};

    for(int i=0; i

输出结果:

"a"

"b"

"c"

二、找出list得重复值和重复值得个数

 这里需要用到QMap键值对,已知当QMap添加了重复键,QMap会保存最后一次添加得键值对。

借助参考链接得逻辑思路,具体代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include 
#include 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QList m_ListStr;
    m_ListStr.clear();

m_ListStr = {"a", "a", "a", "a", "a", "a","b", "b", "b", "c", "c","a", "a","c", "c", "d"};

    QMap mapStrInt;

    int count=1;
    for(int i=0; i::Iterator it = mapStrInt.begin();
    while(it!=mapStrInt.end())
    {
        qDebug() << it.key() << it.value();
        it++;
    }
}

运行结果:

“a” 8

"b" 2

"c" 4

"d" 1

你可能感兴趣的:(QtCreate_C++学习类,qt)