Я новичок в C++, и я учусь от Accelerated C++ (для тех, кто с книгой, я пытаюсь запустить программу, описанную в §7.4)Ошибка при добавлении ЬурейеЕ в заголовке
Программа Я смотрю на использование некоторых typedefs - я понимаю, что если я добавлю их в заголовочный файл, любой исходный файл, который включает этот заголовок, также сможет использовать typedefs.
Мой заголовок:
#ifndef READ_GRAMMAR_H_INCLUDED
#define READ_GRAMMAR_H_INCLUDED
typedef std::vector<std::string> Rule;
typedef std::vector<Rule> Rule_collection;
typedef std::map<std::string, Rule_collection> Grammar;
Grammar read_grammar(std::istream& in);
#endif // READ_GRAMMAR_H_INCLUDED
Это дает мне ошибку error: 'map' in namespace 'std' does not name a type
Если изменить третий ЬурейеЕ к typedef std::vector<Rule_collection> Grammar;
(не то, что Я хочу это, просто к примеру) он строит без ошибок ,
Любая идея, в чем проблема? Я понятия не имею, делаю ли я что-то тривиальное неправильным образом или неверен весь подход
Вам нужно для '#include
и ''. –
chris
@ rbennett485 Я уверен, что карта - шпион! –