項目需求:
字符串數組中保存着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();*/ }