QT中統計數組中各元素出現的次數


項目需求:

    字符串數組中保存着5次字符識別同一編號的結果,判斷超過3次識別出相同的字符串,即為識別成功。

    所以需要判斷5個字符串中是否有大於等於3個相同的?(等同於統計數組中各元素出現的次數)

1、使用QMap來實現

   QStringList    m_sOCRcharList ;    //存5次識別出的結果進行判斷
    m_sOCRcharList << "B025292A03"<< "B025292A03"<< "440H523420"<< "B025292A03"<< "B025292A03";
    QMap<QString, int>    m_qmap;        //統計字符數組中各個元素出現的個數
    if (5 == m_sOCRcharList.size())
    {
        for (int i = 0; i < m_sOCRcharList.size(); i++)
        {
            int num;
            num = m_qmap[m_sOCRcharList.at(i)];
            m_qmap.insert(m_sOCRcharList.at(i), num == 0 ? 1 : num + 1);
        }
        QMap<QString, int>::iterator it; //遍歷map
        for (it = m_qmap.begin(); it != m_qmap.end(); ++it)
        {
            if (it.value() >= 3)      //識別出3張相同,即認為識別成功
            {
                qDebug() << "成功識別出的字符串:" << it.key();
            }
            qDebug() << it.key() << "個數:" <<it.value();
        }

       /* m_qmap.clear();
      m_sOCRcharList.clear();*/
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM