自定義數據的矢量我有一個數據結構是這樣的:查找最大和最小使用算法
struct Speed {
int set; //set by user
int act; //actual speed
int millis; //millis since epoch
}
vector<Speed> data;
現在我要畫這個矢量。爲了創建一個很好的座標軸,我想在這個矢量中找到最大和最小的數據。我喜歡這個,但顯然,因爲它僅基於set
,如果在任何一點act
小於或大於set
,它都會失敗。我的意思是圖表的Y
軸應在最小值set, act
和最大值set, act
之間。
auto max = std::max_element(begin(data), end(data),
[&](const Speed& a, const Speed& b){
return a.set() < b.set();
//how about act?
});
auto min = std::min_element(begin(data), end(data),
[&](const Speed& a, const Speed& b){
return a.set() < b.set();
//how about act?
});
**我知道**怎麼寫不涉及算法和lambda表達式來實現結果的正常碼...但我很有興趣看看它是如何可能的算法/λ做,而無需操作員在結構中超載。
我也可以這樣做act
然後比較結果...但是這會花費我4個循環!
現在還不清楚你想如何比較行爲?你想要最小/最大的集合和行爲?平均?設置和行爲之和的最小/最大值?有很多方法可以比較兩個值。 – Jonesinator
@Jonesinator我只想得到我的圖表的最小值和最大值,以涵蓋兩個值範圍 –
您的關於爲兩個屬性(set,act)構造比較函數的問題? –