我想在 C++ 中使用 unordered_map STL,但是一旦我使用 header ,它就会给我这个错误:
此文件需要支持 ISO C++11 标准的编译器和库支持。此支持目前处于试验阶段,必须使用 -std=c++11 或 -std=gnu++11 编译器选项启用。
我在下面附上了我想要运行的代码。 (也欢迎对代码进行任何输入。谢谢)
#include <iostream>
#include <unordered_map>
using namespace std;
class Node
{
public:
string a,b;
Node()
{
a="hello";
b="world";
}
};
int main ()
{
unordered_map<Node> mymap;
Node mynode;
mymap.insert(mynode);
std::cout << "myrecipe contains:" << std::endl;
for (auto& x: mymap)
std::cout << x.a << ": " << x.b << std::endl;
}
编辑:我使用以下命令让它工作:g++ -std=c++11 [filename].cpp
感谢您的帮助。
最佳答案
问题的主要答案:在编译命令中指定 -std=c++11
。
具体哪些 C++11 功能可用将取决于您的 GCC 版本。这里有两个链接可能会有所帮助:
关于c++ - 如何在 Linux 中启用 C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26954046/