c++ - 如何在 C++ 中将数据插入嵌套映射?

标签 c++ stl

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

相关文章:

c++ - 有没有一种方法可以显式销毁给定 boost::asio::io_context 上挂起的所有处理程序?

c++ - 使用(未)捕获的异常进行堆栈展开

c++ - 为什么我不能在自定义类的复制构造函数中 move 这个 vector ?

c++ - 检查 C++ 中的映射是否包含另一个映射中的所有键

c++ - 将 unique_ptr 数组移动到另一个数组的正确方法

C++ : Pick portions/data from a string having fixed format

c++ - Google 使用 SetUpTestCase 静态变量测试 undefined reference

C++ Virtual 关键字作为一种避免包含代码单元的方法

c++ - 在 std::string 中处理存储(可能为 NULL)char * 的最佳方法

c++ - STL优先级队列中的堆管理是否调用复制构造函数?