c++ - 我无法声明 map

标签 c++ compiler-construction dictionary iso

所以在我的 cpp 文件中,我试图声明一个映射如下:

map<string, vector<myStruct>> myMap;

在我的文件顶部,我写了 using namespace std我还有#include <string> .

但是我遇到了这些奇怪的错误:

错误:ISO C++ 禁止声明没有类型的“映射”

我不知道怎么解决。如果我写 #include <map>这只会导致编译器崩溃。

最佳答案

你有#include <map>吗?休息看起来有效, 但是,如果您的 C++ 标准不是 C++11,您可能需要添加一个空格:

#include <map>
#include <vector>
#include <string>
using namespace std;

map<string, vector<myStruct> > myMap;
                           ^^^

最好不要使用命名空间 std:

#include <map>
#include <vector>
#include <string>

std::map<std::string, std::vector<myStruct> > myMap;

关于c++ - 我无法声明 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16181486/

相关文章:

c++ - 试图重载运算符++,不能调用没有对象的成员函数

c++ - 将 C++ 移植到 C++/CLI 很难吗?

c++ - 迭代修改boost::multiindex的数据

c++ - 什么样的 .lib 文件以 "!<arch>"开头?

c++ - redhawk 模块服务函数使用示例崩溃

c++ - C++ 中的 Lua 转储

c - token 是在预处理之后计数还是仅在预处理过程中计数?

python - 通过列表中的索引获取元素比通过字典中的键获取元素更快

c++ - 访问一个 vector ,它是映射中的一个值,以与另一个 vector 在其上运行相等运算符

python - 在Python中将生成器中的元组存储在字典中