2010-12-09 105 views
0

我想遍歷一個向量以查找具有給定ID的記錄。該ID由用戶提供。下面的代碼將按照它們出現在向量中的順序返回給定ID的所有值。我如何按價格排列結果,例如從最低到最高?按值排序結果

for(Seek = List.begin() ; Seek !=List.end() ; Seek++) { 
    if(Seek->GetID() == Input) 
     cout <<"Price: " << Seek->GetPrice() << endl; 

回答

3

使用C++標準庫排序功能與自定義比較應該做你想做的。我不知道是什麼類型尋求正是,但這是讓你開始的東西。

struct compareSeeks { 
    bool operator() (const Seek& lhs, const Seek& rhs) { return (lhs.price < rhs.price);} 
} mycompare; 

// method code here... 
sort(List.begin(); List.end(), mycompare); 

您可以在這裏看到更多http://www.cplusplus.com/reference/algorithm/sort/

[更新]我認爲你的列表已經過濾了正確的ID,所以我只關注問題的排序方面。

+1

一個帶有兩個const引用的自由函數就足夠了。不需要爲了比較兩個對象而抽出結構。 – 2010-12-09 04:06:01