我有幾個對象,每個對象有2個屬性alpha和beta。
我有大量的操作,我給我的對象,我需要得到相應的對象的alpha和beta的值。有2種方式來做到這一點 -哪個更好?使用2個數組或數組對?
1)使用2個陣列 - 一個用於α-和一個用於測試
for(each query){
cin>>index;
int val1 = alpha[index];
int val2 = beta[index];
//Do something with val1 and val2
}
2)使用對陣列
for(each query){
cin>>index;
pair<int,int> requiredPair = pairArray[index];
int val1 = requiredPair.first;
int val2 = requiredPair.second;
//Do something with val1 and val2
}
哪個上述方法更高效?我認爲,由於緩存,方法2會更有效率。這是真的嗎?另外,如果每個對象有多個屬性會怎樣。使用多個數組還是一個struct數組會更好?
衡量,衡量,衡量......我們不可能用此代碼預測緩存行爲等。 – deviantfan
使用方法2.無需繁殖實體。 –
如果你真的在做輸入,'cin >> index'不只是一個例子,那麼它並不重要。 –