我有这门课。
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>