C++ 映射集映射的映射初始化错误

C++ 映射集映射的映射初始化错误,c++,c++11,hash,std,stdmap,C++,C++11,Hash,Std,Stdmap,我试图初始化一个深度嵌套的散列,它本质上有一个指向集合的整数键,集合中的每个值都应该指向另一个字符串和结构的映射 它在编译时没有匹配的函数来插入错误 你能帮我初始化下面的哈希吗 #include <map> #include <iostream> #include <string> #include <vector> #include <set> struct values { std::string a; std

我试图初始化一个深度嵌套的散列,它本质上有一个指向集合的整数键,集合中的每个值都应该指向另一个字符串和结构的映射

它在编译时没有匹配的函数来插入错误

你能帮我初始化下面的哈希吗

#include <map>
#include <iostream>
#include <string>
#include <vector>
#include <set>



struct values
{
    std::string a;
    std::string b;
    values():a("milepost"),b("dummyval"){};
    values( std::string ab, std::string bc)
    {
        a=ab;
        b=bc;

    };
};

typedef  std::map<std::string,values> my_waysides ;

typedef  std::map <int, std::set<std::string> > groups;

typedef  std::map <std::string,my_waysides> myData;

typedef  std::map <std::string,my_waysides> myData;

int main(int argc, const char * argv[]) {

   std::map<int, std::map< std::set<std::string>,std::map<std::string,my_waysides>> > stringStringMap;

   my_waysides  m_wayside1,m_wayside2,m_wayside3;

   myData data1;
   data1.insert( std::make_pair("7893" , m_wayside1) );


    stringStringMap.insert(std::make_pair(1,std::make_pair("ET", data1)));

    stringStringMap.insert(std::make_pair(1,std::make_pair("PT", data1)));

}
谢谢 Tejas

A
std::map
使用
std::pair
存储节点


在构建对时,您可能缺少一个或多个
const

std::mapception无论修复可能存在的语法错误,这里都存在一个更重要的问题:
map
几乎肯定是一个设计错误。我建议在这里发布这篇文章,并描述您试图解决的问题:-然后在该文章的链接上添加对此问题的评论。我相信我们可以帮助你设计出更好的结构。@JohnZwinck:我已经发布了数据集,我正试图用这个输出创建一个xml。我正在发布子问题first@LearningCpp:我知道你已经发布了-但是你犯了一个错误,再次讨论语法错误,而我认为你应该讨论的更像是“这是我试图解决的问题,这是我打算使用的数据结构-这合理吗?”@JohnZwinck这就是问题所在,我只是无法插入并试图获得成功,如果可能的话,请建议对此进行改进这看起来不正确。标准::映射>字符串映射。示例数据集也已发布映射声明看起来是正确的,插入的问题是尝试使用非常量键插入对,但
insert
需要
map::value\u type
,即
pair
   1=>PT=>"789235"=>{milepost,dummyval}
   1=>PT=>"789234"=>{milepost,dummyval}
   1=>PT=>"789237"=>{milepost,dummyval}
   1=>PT=>"789238"=>{milepost,dummyval}
   1=>ET=>"789235"=>{milepost,dummyval}
   1=>ET=>"789234"=>{milepost,dummyval}
   1=>ET=>"789237"=>{milepost,dummyval}
   1=>ET=>"789238"=>{milepost,dummyval}
   2=>PT=>"789235"=>{milepost,dummyval}
   2=>PT=>"789234"=>{milepost,dummyval}
   2=>PT=>"789237"=>{milepost,dummyval}
   2=>PT=>"789238"=>{milepost,dummyval}
   2=>ET=>"789235"=>{milepost,dummyval}
   2=>ET=>"789234"=>{milepost,dummyval}
   2=>ET=>"789237"=>{milepost,dummyval}
   2=>ET=>"789238"=>{milepost,dummyval}