我的项目工作正常,然后当我在另一个头文件中更改某些内容时,我突然遇到了这个错误:
错误C2065'地图':未声明的标识符
虽然我做了#include <map>
Game.h的一部分:
#include <map>
class Game{
Game();
}
在Game.cpp中给出错误的行:
_results.insert(map<std::string, int>::value_type(_players[i]->getUsername(), 0));
此代码行运行正常!直到某一点
答案 0 :(得分:0)
我的猜测是,在某一点上,您在全局命名空间中有一个名为map
的类,它提供了类似于std::map
的接口,或者更可能的是,您依赖于{{ 1}}指令已被删除(无论是否无意;也许其他人在你正在使用的标题中有一个,但当他们意识到这是一个坏主意时删除它)。在包含该行的代码块中放置using namespace std;
的using指令或std
的using声明,或者在想要使用C ++标准库std::map
时显式使用std::map
map
1}}类;推荐后者,因为它使代码更清晰,更清晰。
如果您之前使用的是自定义map
类,请检查其标题是否仍为#include
d,并且它不会遇到相同的命名空间问题。