2013-08-23 5 views
1

Я хочу вставить содержимое абзаца или статьи и обрабатывать каждое слово. Ниже я пытаюсь получить каждую строку, а затем получить ее. Наконец, я хочу слово с максимальной полнотой. Я новичок в C++. Прямо сейчас я вставил статически две строки. Что дает ошибка expected primary-expression before ‘.’ token. Код ниже: `ожидаемое первичное выражение перед '.' Token в ordered_map()

#include <string> 
#include <iostream> 
#include <unordered_map> 

int main() 
{ 
    typedef std::unordered_map<std::string,int> occurrences; 
    occurrences s1; 
    s1.insert(std::pair<std::string,int>("Hello",1)); 
    s1.insert(std::pair<std::string,int>("Hellos",2)); 

    //for (auto it = occurrences.begin(); it != occurrences.end(); ++it) this also gives same + additional " error: unable to deduce ‘auto’ from ‘<expression error>’" error 
    for (std::unordered_map<std::string, int>::iterator it = occurrences.begin();//Error is here 
                it != occurrences.end(); ////Error is here 
                ++it) 
    { 
     std::cout << "words :" << it->first << "occured" << it->second << "times"; 
    } 

    return 0; 
} 

Где ошибка?

ответ

1

occurrences - тип, а не объект. Вы хотите использовать объект s1.

Версия 1:

for (auto it = s1.begin(); it != s1.end(); ++it) 

Версия 2:

for (std::unordered_map<std::string, int>::iterator it = s1.begin(); it != s1.end(); ++it) 

Версия 3:

for (auto pair : s1) 
+0

спасибо, можете ли вы просить меня, как я могу вставить строку от пользователя в этом случае? – user123

1

Вы должны использовать s1.begin() и s1.end(), не occurrences.begin() и occurrences.end(), так как occurrences тип, и s1 переменная этого типа.

+0

спасибо, вы можете мольбы сказать мне, как я могу вставить строку с пользователем в вышеприведенном случае ? Простой может быть сделано с помощью getline(), но здесь возникновение имеет два параметра, которые я смущен! – user123

+0

Я не уверен, что вы хотите сделать сейчас. Вы пытаетесь подсчитать, сколько раз слова появляются в стандартном вводе? –

Смежные вопросы