如何在c++中插入数据到嵌套映射

How to insert data into nested map in c++?

本文关键字:数据 嵌套 映射 插入 c++      更新时间:2023-10-16

//我正在从文件中读取数据并将数据存储到结构中。这里"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;