我有以下几点:
#include<iostream>
#include<unordered_map>
#include<tuple>
using namespace std;
class CTest {
// Properties
public:
unordered_map<const string, tuple<int, int> > Layout;
// Methods
public:
CTest ();
~CTest ();
};
CTest::CTest () {
Layout["XYZ"] = make_tuple (0, 1);
}
CTest::~CTest () {
// Do nothing
}
int main (int argc, char *argv[]) {
CTest Test;
return 0;
}
编译这个简单的程序会出现以下错误:
我在 Windows 7 中使用 Visual Studio 2010 Professional。
最佳答案
除了将 Layout
更改为:
unordered_map<string, tuple<int, int> > Layout;
正如 Johan 和 Benjamin 所述,您还需要
#include <string>
。请注意,我不明白为什么需要更改
Layout
,即使 const
是多余的。关于C++ unordered_map 导致编译时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8885595/