我有以下几点:

#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/

10-11 18:36