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