我有一組約150個變量,可以有不同的類型(double,bool,array)。我需要將這組變量包裝到QVector中。由於類型變量的不同,我想使用QVariant。到目前爲止,這是我的設計。我不確定的是myVariables的性能+搜索機制。QVector結構 - 性能+最佳實踐
enum class VariableEnums{
VAR1,
VAR2,
VAR3
};
struct myVariable{
VariableEnums var;
QVariant value;
};
QVector<myVariable> myVariables;
這個想法是myVariables將被髮送到幾個模塊。每個模塊都會找到一個特定的變量並更新其他一些變量。所以一個模塊可以更新將被另一個模塊使用的變量。到目前爲止,關於搜索我能想到的一個特定的變量只有以下幾點:
foreach(myVariable *myVar, myVariables{
if(myVar->var == VariableEnums::VAR1){
//......
continue;
}
}
有沒有做一些這方面的更有效的方法?我可以使用indexOf,但我不確定如何將它與結構一起使用。
謝謝, m。
你剖析它。這樣你就可以在你的系統上知道這個選擇的性能。是否也可以選擇構建'QVector','QVector '...,並根據需要傳遞它們。看起來你的代碼正在遭受失憶,因爲你知道這種類型,然後忘了它。 –
andre
您是否將不同的類型與VAR1到VAR3中的每一個關聯?如果是這樣,爲什麼不簡單地保留三個單獨的值列表並且僅對特定類別的值進行工作?這不僅可以讓您搜索異構容器,還可以消除QVariant的運行時間開銷。當然,除非你絕對需要單一的異構容器。 – thokra