如何在 C++ 中将数据插入嵌套映射?
How to insert data into nested map in c++?
//我正在从文件中读取数据并将数据存储到structure.Here "obj"是一个结构对象
另请注意,我的文件多次具有外部映射键,这意味着当我从文件中读取时,结构的某些字段具有公共值,我正在使用该公共值作为外循环的键。
如果我只有一个外键值那么它工作正常但是当有多个键值时它就会失败。
typedef std::map<double,Order_Msg,std::greater<double> >InnerMap;
typedef std::map<int, InnerMap> OuterMap;
InnerMap buy_detailsmap;
OuterMap buy_tokenmap;
//one way
buy_tokenmap.insert(make_pair(obj.token,InnerMap()));
buy_detailsmap.insert(make_pair(obj.orderId,obj));
//another way
buy_detailsmap.insert (std::pair<double,Order_Msg>(obj.orderId,obj));
buy_tokenmap.insert(std::make_pair(obj.token,buy_detailsmap));
我都试过了,但都不能正常工作。
不清楚您为什么需要 buy_detailsmap
,因为它与 buy_detailsmap
是分离的。除非你真的需要 insert
的语义,否则你可以简单地使用 operator[]
:
buy_tokenmap[obj.token][obj.orderId] = obj;
//我正在从文件中读取数据并将数据存储到structure.Here "obj"是一个结构对象
另请注意,我的文件多次具有外部映射键,这意味着当我从文件中读取时,结构的某些字段具有公共值,我正在使用该公共值作为外循环的键。
如果我只有一个外键值那么它工作正常但是当有多个键值时它就会失败。
typedef std::map<double,Order_Msg,std::greater<double> >InnerMap;
typedef std::map<int, InnerMap> OuterMap;
InnerMap buy_detailsmap;
OuterMap buy_tokenmap;
//one way
buy_tokenmap.insert(make_pair(obj.token,InnerMap()));
buy_detailsmap.insert(make_pair(obj.orderId,obj));
//another way
buy_detailsmap.insert (std::pair<double,Order_Msg>(obj.orderId,obj));
buy_tokenmap.insert(std::make_pair(obj.token,buy_detailsmap));
我都试过了,但都不能正常工作。
不清楚您为什么需要 buy_detailsmap
,因为它与 buy_detailsmap
是分离的。除非你真的需要 insert
的语义,否则你可以简单地使用 operator[]
:
buy_tokenmap[obj.token][obj.orderId] = obj;