Я не профессиональный программист, поэтому, пожалуйста, не стесняйтесь заявлять очевидное.
Моя цель - использовать контейнер std::multiset
(typedef EventMultiSet
) с именем currentEvents
, чтобы организовать список структур типа Event
и чтобы члены класса Host
иногда добавляли новые Event
структурирует до currentEvents
. Структуры должны быть отсортированы по времени одним из их членов. Я не уверен, насколько многое из того, что я пытаюсь сделать, является законным; Компилятор g ++ сообщает (в «Host.h») «ошибка: EventMultiSet не был объявлен». Вот что я делаю:
// Event.h
struct Event {
public:
bool operator < ( const Event & rhs ) const {
return ( time < rhs.time );
}
double time;
int eventID;
int hostID;
};
// Host.h
...
void calcLifeHist( double, EventMultiSet * ); // produces compiler error
...
void addEvent( double, int, int, EventMultiSet * ); // produces compiler error
// Host.cpp
#include "Event.h"
...
// main.cpp
#include "Event.h"
...
typedef std::multiset< Event, std::less< Event > > EventMultiSet;
EventMultiSet currentEvents;
EventMultiSet * cePtr = ¤tEvents;
...
Основные вопросы
- Где я должен включить определение типа EventMultiSet?
- Мои указатели EventMultiSet явно проблематичны?
- В порядке ли функция сравнения в моей структуре Event (теоретически)?
Заранее большое спасибо.