//我正在从文件中读取数据并将数据存储到结构中。这里“obj”是一个结构对象。
另请注意,我的文件多次具有外部映射键,这意味着当我从文件中读取时,结构的某些字段具有公共(public)值,并且我正在使用该公共(public)值作为外循环的键。
如果我只有一个外键值,那么它可以正常工作,但是当有多个键值时,它就会失败。
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;
关于c++ - 如何在 C++ 中将数据插入嵌套映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777804/