void FileParser::saveWordDic(const QStringList &keyvalue) { QString key = keyvalue.at(0); QString value = keyvalue.at(1); WordDict wordKeyMap(key, 0); int i; for (i = 1; i < INT_MAX; i++) { wordKeyMap.set_index(i); if (keymap.find(wordKeyMap) == keymap.end()) { keymap.insert(wordKeyMap, value); break; } } if (i == 1 && keymap.find(WordDict(key, 2)) == keymap.end()) // 防止set集合中key已存在,只是WordDict(key,1)已被删除。 validKey.insert(key); if (i == INT_MAX) { qDebug() << "f**k the key,it's too much"; return; } }
QMap<WordDict, QString>::iterator FileParser::saveWordDic(const QStringList &keyvalue) { QString key = keyvalue.at(0); QString value = keyvalue.at(1); WordDict wordKeyMap(key, 0); QMap<WordDict, QString>::iterator iter; int i; for (i = 1; i < INT_MAX; i++) { wordKeyMap.set_index(i); if (keymap.find(wordKeyMap) == keymap.end()) { iter = keymap.insert(wordKeyMap, value); break; } } if (i == 1) //NOTE::if not existed, add it to the code table set validKey.insert(key); if (i == INT_MAX) { qDebug() << "f**k me,please. too much keys now, it must be a bug?"; return 0; } return iter; }