C++ (Qt)QMap < QString, int > calculate( const QString & text){ QMap < QString, int > map; QTextDocument document( text ); QTextCursor textCursor; do { textCursor = document.find( QRegExp( "\\w+" ), textCursor, QTextDocument::FindWholeWords ); if ( textCursor.hasSelection() ) { QString word = textCursor.selectedText(); map[ word ]++; } } while ( !textCursor.isNull() ); return map;}