Unordered Map,我可以有一个包含增长链表的结构的映射吗?

问题描述 投票:0回答:0

在下面的示例中,我有一个名为表的结构的 unorder_map。 在结构中,我可以有可以添加项目的列表吗? 我试过了,我可以添加,但是当我将一个项目添加到列表时,我似乎增加了另一张地图的大小。 所以当我遍历地图时,会有额外的空白行。

我看了相关的帖子,但不是我想要的,或者我的简单和基本的理解是不够的。

struct UserRecord {
   int                     user_id           = 0;
   std::string             code              = "";
   std::string             name              = "";
   std::string             password          = "";
   int                     role_id           = 0;
   int                     type              = 0;
   char                    status            = STATUS_SUSPENDED;

   std::list<std::string>  orders;              
   std::list<std::string>  bills;  
   std::list<std::string>  trading_accounts;  
};

class Users : public DBFiles {
   private:

   public:
      std::unordered_map<std::string, UserRecord> table;

      Users() {};
      ~Users() {};
      bool  Exists(std::string code);
      void  AddOrder(std::string user_code, std::string order_key);
      void  RemoveOrder(std::string user_code, std::string order_key);
      bool  ParseLine(std::string line, std::string file_name);
      void  Print();
};

...
void Users::AddOrder(std::string user_code, std::string order_key) {
   table[user_code].orders.push_back(order_key);  // add to list
}

我已经将它缩小到当地图的大小增加并且当我改变一个具有类似 unordered_map 结构的类时,地图的大小发生变化,列表与这个类即时无关。

似乎是内存问题。

如果不允许,那么我将删除列表,如果允许,我可以添加更多代码。

这是一个不同的类,调用时会导致另一个地图添加一个新的空白行 void Participants::AddTradingAccount(std::string par_code, std::string trading_account_code) { 表[par_code].trading_accounts.push_back(trading_account_code); // 添加到列表 }

这两个类都是另一个类中的实例。

c++ linked-list unordered-map
© www.soinside.com 2019 - 2024. All rights reserved.