C ++我无法从函数中更新向量
Posted
技术标签:
【中文标题】C ++我无法从函数中更新向量【英文标题】:C++ I can't update a vector from within a function 【发布时间】:2013-05-02 02:08:25 【问题描述】:我认为这里缺少一些基本的东西,但我有一个我制作的称为“事件”的结构向量,称为 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);
【问题讨论】:
这让我想起了 MVP,但实际上不是。 这个问题最可能的原因是复制/粘贴错误。 【参考方案1】:不包括类型。你想构造一个对象,而不是声明一个函数。这构造了一个对象:
Event newEvent(type, time);
【讨论】:
“你正在构造一个对象,而不是声明一个函数”——很好的歧义......根据“是”是否意味着现有代码正在做什么或意图是什么来读取任何一种方式。跨度> 我将编辑我的答案,以帮助那些没有大脑的人。【参考方案2】:Event newEvent(Event::TYPE type, double time);
这不是创建Event
类的对象。向量eventTable
存储Event
的对象,但是,您没有以当前方式提供Event
的对象。你在声明一个函数。
试试:
Event newEvent(type, time);
【讨论】:
以上是关于C ++我无法从函数中更新向量的主要内容,如果未能解决你的问题,请参考以下文章
无法从网格更新表(过程或函数 spExcelGridTestUpdateTable 指定了太多参数)