C++ 创建std::与无序的_映射和自定义对象配对

C++ 创建std::与无序的_映射和自定义对象配对,c++,swap,unordered-map,std-pair,C++,Swap,Unordered Map,Std Pair,我有一个结构 struct modedata { unsigned int id; float val1; float val2; std::string mode; }; 我需要创建这样的结构: std::make_pair(1, std::unordered_map<std::string, modedata >()); std::unordered_map<std::str

我有一个结构

    struct modedata {
        unsigned int id;
        float val1;
        float val2;
        std::string mode;
    };
我需要创建这样的结构:

    std::make_pair(1, std::unordered_map<std::string, modedata >());
    std::unordered_map<std::string, modedata>()
这让我感到困惑,因为我可以使用这种结构:

    std::make_pair(1, std::unordered_map<std::string, modedata >());
    std::unordered_map<std::string, modedata>()
std::无序映射()
这一错误的原因是什么?如何解决