Счетчик не изменяется

296
31 мая 2017, 06:22
#include <iostream>
#include <sstream>
#include <list>
using namespace std;
int main()
{
    struct Word
    {
        int num;
        string text;
    };

    string text;
    Word word;
    word.num = 1;
    list<Word> wordList; //список
    bool wordRepeat = false;

    cout << "Введите текст нижним регистром, без знаков препинания и нажмите Enter \n";
    getline(cin, text); //вводим строк
    istringstream iss(text); //превращаем строку в поток
    while(iss >> word.text) //берем слово из потока
    {
        for(Word i : wordList)//проверяем на совпадения
        {
            if (word.text == i.text)
            {
                i.num++;
                //i.text = i.text + "+";
                wordRepeat = true;
                break;
            }
        }
        if (!wordRepeat) wordList.push_back(word);
        wordRepeat = false;
    }
    for(Word i : wordList)//ВЫВОДИМ слова с кол-вом
    {
        cout << i.text << " " << i.num << endl;
    }
    return 0;
}
Answer 1

Вот тут

for(Word i : wordList)//проверяем на совпадения
    {
        if (word.text == i.text)
        {
            i.num++;

вы меняете счетчик В КОПИИ, а не в оригинале...

Вот так нужно:

for(Word& i : wordList)
READ ALSO
Конвертер функции с возвращаемым типом T в функцию с возвращаемым типом string

Конвертер функции с возвращаемым типом T в функцию с возвращаемым типом string

Пытался написать функцию, которая делает то, что указано в заголовке:

386
Visual Studio 2017 C++ LNK2019 unresolved external symbol

Visual Studio 2017 C++ LNK2019 unresolved external symbol

ЗдравствуйтеИмеется вот такая иерархия:

541
Регулярное выражение в С++

Регулярное выражение в С++

Не могу понять почему не работает следующий кодВ res всегда false

294
Qt C++ layout выходит за пределы TabWidget

Qt C++ layout выходит за пределы TabWidget

Всем приветХочу добиться корректного расположения QToolBox в QTabWidget

437