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