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