2011-10-04 76 views
0

我發現自己經常這樣做,但我不知道該怎麼稱呼它。從概念上講,至少對我來說,我從矢量中去除了一個元素,並且作爲副作用,出於優化的原因,矢量的最後一個元素將它放在了位置上。是否有技術術語用所述向量的最後一個元素替換向量中的元素?

當然這個程序有一個正確的名稱?請賜教,所以我不寫RemoveElementAndReplaceWithLastItem方法。

+0

出於好奇,有什麼用例找到你這樣做一遍又一遍? –

+0

如果我正在處理訂單無關緊要的一組元素。即對於仿真中的對象,我關心的是每一步對每個對象進行一次處理,刪除死亡對象。數據的載體一般提供更好的高速緩存一致性,以及RemoveElementAndReplaceWithLastItem解決了中間擦除的低效率問題。 – porgarmingduod

回答

0

以下的您的函數應該被稱爲一個:

  • ReplaceWithLast()

  • MoveLastTo()

  • ConvertQtoPQ()

如在轉換隊列到PriorityQue UE

0

您可以命名您的方法/函數方式如下:

replaceInPlace: anElement 

或爲特定的語言

replaceInPlace(anElement) 
1

我不相信有一個通用術語,你在做什麼。但是對於你特定的用例,我建議根據你的意圖命名這個函數,而不是根據你的操作做些什麼。正如你所說,這個操作做的是副作用,你真正在做的是從中間刪除。

因此,我建議命名的功能:fast_delete(或quick_remove,由您決定)。

然後在函數實現的註釋你描述做快速刪除機制:這是最後一個元素替換被刪除的項目。你甚至應該提到你上面所說的爲什麼你認爲這樣做更快,並且操作不能保證列表將保持與以前相同的順序。

+0

至於兩個相對風格的另一種回答命名自己和詹姆斯·莫勒給,我當然更喜歡你的。我無法決定我更喜歡哪一個。 'fast_delete'傳達優化的目的,而'special_delete'將使公然清楚,* *的東西是怎麼回事。哦,這樣的細節並不那麼重要。我的實際問題的答案似乎是「可能不是?」。 – porgarmingduod