增加的typedef当我是新的C++和我正在学习从加速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 typedef std::vector<Rule_collection> Grammar;
(不,我想这一点,只是举例),它构建没有错误。
任何想法是什么问题?我不知道我是在做一些错误的小事,或者整个方法是不正确的
你需要'#包括
''。 –
chris
@ rbennett485我相信地图是间谍! –