0

我有这堂课。

class event_t {

public:
  event_t(String *_session_time, String *_event_type, String *_table_name, String *_num_of_events);
  ~event_t();
   char *table_name;
   char *event_type;  
   pthread_mutex_t lock;
   pthread_cond_t cond;
   int num_of_events_threshold;
   double time_out; 
   int num_of_events_so_far; 
};

然后我有一个 stl::map。

std::map <char*, std::list<event_t*>, cmp_str > all_events;

我想为相同的 table_name 和 event_type 保留一个条目。每当发生新请求时,如果旧事件具有相同的 table_name 和 event_type 并且存在于 std::list 中,我想删除它。但是当我删除这个旧事件对象时,恰好是相同的 char* table_name 的映射键也被删除。

我的映射类似于:

map[event_t->table_name] = stl::list<event_t>
4

0 回答 0