// Переменная Token типа QStringList хранит список всех слов из текстаvoid Tokenizer::WordCount (){ QHash<QString, int> countWord; for (int i=0; i<Token.size(); ++i) { foreach (QString word, Token) countWord[word]+=1; } for (QHash<QString, int>::iterator iter=countWord.begin(); iter!=countWord.end(); ++iter) { QStringList Key; // переменная, чтобы вывести в виде списка QStringList Value; // -/-/-/ QTextStream out; // 'конвертирование' ... out<<iter.value(); // int ... QString temp; // в string ... out>>temp; // Value.append(temp); Key.append(iter.key()); ui->Token_list->addItems(Key); ui->Split_list->addItems(Value); }}
C++ (Qt)QHash<QString, int>::iterator end = countWord.end();for (QHash<QString, int>::iterator iter = countWord.begin(); iter != end; ++iter)
C++ (Qt)QHash<QString, int>
C++ (Qt) QStringList::const_iterator constEnd = Token.constEnd(); for (QStringList::const_iterator i = Token.constBegin(); constEnd != Token.constEnd(); ++i) countWord[*i] += 1;
for (int i=0; i<Token.size(); ++i) ++countWord[Token[ i ]];
QStringList outLst; for (int i=0; i<Token.size(); ++i) if (countWord[Token[ i ]] < 2) outLst.push_back(Token[ i ]]);
QStringList outLst; for (int i=0; i<Token.size(); ++i) { int & val = countWord[Token[ i ]]; if (val < 0) continue; // второе или след вхождение, пропускаем outLst.push_back(Token[ i ]]); if (val > 1) val = -val; // отмечаем }
QStringList::const_iterator constEnd = Token.constEnd();QStringList::const_iterator i = Token.constBegin(); // т.е. вынести перед циклом также и итератор начала? for (; constEnd != Token.constEnd(); ++i) countWord[*i] += 1;
C++ (Qt)QObject::connect(listWidget1->verticalScrollBar(), SIGNAL(valueChanged(int)), listWidget2->verticalScrollBar(), SLOT(setValue(int)));