好吧,我正在设计发布/订阅模式(这不是观察者模式!很多人对此感到困惑)。我的问题是:
我有主题的枚举:
enum topics {gui, combat, physics};
然后对于每个主题,我需要 2 个容器。目前我是这样做的:
std::vector <cSubscriber *> guiSubscribers;
std::vector <cEvent> guiEvents;
我想要做的是拥有一个使用枚举作为键的向量容器。我的意思是我可以通过以下方式访问它:
events[gui] //it gives me access to vector of gui events
subscribers[combat] //this gives me access to vector of combat subscribers
[] 中的键必须是枚举中的值。有没有办法做到这一点,或者我需要为每个主题手动完成?