私はそれは素晴らしい作品混乱返す参照が
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を返すので、イベント構造全体ではなくイベントの参照を返すだけでよいかもしれないと考えました。
デキュー関数の戻り値の型を変更してイベントの参照を返すにはどうすればよいですか? ポインタを返すためにこのようなことができると思いますが、イベントの参照(&)を返すにはどうすればいいですか?あなたはevent_list[0]
とold_root
を変更しているので、動作しませんポインタを返す
Event* FEL::dequeue(){
Event *old_root = &event_list[0];
event_list[0] = event_list[--event_index];
resort_heap(0);
return old_root;
}
まあ、上書きしたり削除したりしたものへの参照を返すことはできません。それはどうやって動くのだろう?コピーを返すことは最も合理的なアプローチのようです。または、標準のライブラリコンテナを使用するだけです。 –