簡體   English   中英

高性能程序,最好是向量數組或向量載體

[英]High performance program, what is better array of vectors or vector of vectors

我正在編寫必須是高性能程序的代碼。

我現在所擁有的是我發明的向量類型為“ A”的向量數組。 “ A”是具有長long和double的結構。

vector<A>* ord = new vector<A>[X];

X是直到執行時間我才知道的值。

對於每個向量,我要做的是按照long long變量對它的對象進行排序,然后執行一些操作。

我的問題是,就性能而言,我現在擁有的是“向量數組”會更好,或者創建這樣的向量向量會更好:

vector<vector<A>> ord;

有兩種想法:

  • 請注意,我不必在向量之間進行操作。
  • 我在其他文章中已經讀到,使用'new'運算符是一個壞主意,在這種情況下,我應該在程序中使用什么。

向量的動態分配數組和向量的向量在優化代碼中可能是相同的。 向量的向量處理了很多問題,因此除非您遇到一些非常不尋常的問題,否則您當然應該選擇該解決方案。

過早的優化是萬惡之源-Tony Hoare爵士

您提到“ X是直到執行時才知道的值”,這是否意味着它是靜態的?

如果您需要它是動態的,請使用向量,但是如果X不變,請使用數組,因為它將節省您一點內存(如果X是靜態的,兩者的運行速度幾乎相同)。

至於關於何時使用new的問題,我將參考本文: 何時使用“ new”,何時不使用C ++?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM