1
我有这两个功能困惑返回引用
int FEL::enqueue(Event& new_event){
getting a reference of an event and add it to an Event array, defined as "Event *event_list"
}
Event FEL::dequeue(){
Event old_root = event_list[0];
event_list[0] = event_list[--event_index];
resort_heap(0);
return old_root;
}
它的伟大工程,但我想修改这个在出列功能有更好的表现。 由于出队函数返回事件,我想如果我只是返回事件的引用而不是整个事件结构可能会更好。
如何更改退出函数的返回类型以返回事件的参考? 我想我可以做这样的事情来返回一个指针,但我该如何返回事件的参考(&)?
Event* FEL::dequeue(){
Event *old_root = &event_list[0];
event_list[0] = event_list[--event_index];
resort_heap(0);
return old_root;
}
那么,你不能返回你覆盖或删除的东西的引用。这应该如何工作?返回副本似乎是最明智的方法。或者只是使用标准库容器。 – 2012-02-15 22:38:11