地图初始化错误集地图

时间:2017-03-26 13:31:04

标签: c++ c++11 hash std stdmap

我正在尝试初始化一个深度嵌套的哈希,它基本上有一个指向一个集合的整数键,其中set中的每个值应指向另一个字符串和结构的映射。

它没有编译,没有匹配的函数来插入错误。

请你帮我初步化​​下面的哈希值,

#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)));

}

DataSet ex:

   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}

由于 特加斯

1 个答案:

答案 0 :(得分:0)

std::map<key, value>存储std::pair<const key, value>个节点。

构建配对时,您可能遗漏了一个或多个const