我不是专业的程序员,所以请不要犹豫,说明显而易见的。
我的目标是使用一个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 typedef?
- 我的 EventMultiSet 指针明显有问题吗?
- 我的 Event 结构中的比较函数(理论上)可以吗?
非常感谢您提前。