我不是一名专业的程序员,所以请毫不犹豫地说清楚。
我的目标是使用名为std::multiset
的{{1}}容器(typedef EventMultiSet
)来组织currentEvents
类型的结构列表,并拥有类成员{ {1}}偶尔会向Event
添加新的Host
结构。结构应该按其成员之一,时间排序。我不确定我要做的有多少是合法的; g ++编译器报告(在“Host.h”中)“错误:'EventMultiSet'尚未声明。”这就是我正在做的事情:
Event
主要问题
非常感谢你。
答案 0 :(得分:2)
编译器错误只是因为你的typedef位于错误的地方 - 只有main.cpp知道它。看起来你可能想在Event.h中使用它,其他两个都包括在内。
我不确定你究竟在问什么 - 但是你可能想要pass by reference而不是指针?
我认为它没有任何问题 - 尽管你可能想要提供其他比较(>
,<=
,...)。
答案 1 :(得分:1)
鉴于你征求了“显而易见”的陈述,我注意到的一件事是你没有#include <set>
,这是为了让你的编译器知道multiset
是什么,或者#include <functional>
需要了解less
的含义:
// main.cpp
#include "Event.h"
#include <set>
#include <functional>
...
typedef std::multiset< Event, std::less< Event > > EventMultiSet;
EventMultiSet currentEvents;
EventMultiSet * cePtr = ¤tEvents;