C ++我无法从函数中更新向量

时间:2013-05-02 02:08:26

标签: c++ function vector structure

我认为这里有一些基本的东西,但是我有一个我称之为'Event'的结构的向量,叫做eventTable,我试图从函数中访问它。我收到这个错误:“无效的参数'候选人是:void push_back(const Event&)”任何建议?

struct Event {
    enum TYPE {
    Arrival,
    CPUBurstCompletion,
    IOCompletion,
    TimerExpired
  };
  double time;
  TYPE type;
  Event(Event::TYPE type, double time)
      : type(type),
        time(time) {}
};

vector<Event> eventTable;

void createEvent(Event::TYPE type, double time){
    Event newEvent(Event::TYPE type, double time);
    eventTable.push_back(newEvent);
}

2 个答案:

答案 0 :(得分:2)

不要包含类型。您想构造一个对象,而不是声明一个函数。这构造了一个对象:

Event newEvent(type, time);

答案 1 :(得分:1)

Event newEvent(Event::TYPE type, double time);

这不是创建Event类的对象。向量eventTable存储Event的对象,但是,您不以当前方式提供Event的对象。你正在声明一个功能。

尝试:

Event newEvent(type, time);