我正在尝试初始化一个深度嵌套的哈希,它基本上有一个指向一个集合的整数键,其中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}
由于 特加斯
答案 0 :(得分:0)
std::map<key, value>
存储std::pair<const key, value>
个节点。
构建配对时,您可能遗漏了一个或多个const
。