我有一個C++列表對象,其中有4列數據,其中每列由空格分隔。它們分別是string,integer,integer和double類型。我如何按第一列和第四列對列表進行排序?按多列對C++列表排序
-1
A
回答
4
使用該解析數據並返回的低於由第一比較對象1和對象2
struct sorter1432
{
bool operator()(const Data &a, const Data &b)
{
if(a.first != b.first) return a.first < b.first // string comparision
if(a.fourth != b.fourth) return a.fourth < b.fourth // double comparision
if(a.third != b.third) return a.third < b.third // int comparision
if(a.second != b.second) return a.second < b.second // int comparision
return false; // Equal
}
};
...
lst.sort(sorter1432);
關於成員,第二,第三的結果和第四你解析謂詞函數(使用stringstream可能)並將其存儲在數據成員中,因爲每次在您的幫助函數中進行解析可能代價很高。
+0
1.我認爲你的意思是if(a.first!= b.first)... 2.他可能想要重載
+0
@SignalEleven對不起,謝謝。是的,除非他稍後可能想以不同的方式排序。 –
1
創建數據的結構,然後根據Mohits的答案進行排序。 它可能看起來像
struct s_data{
string str;
int a;
int b;
double c;
};
現在你可以通過使用一個仿函數進行排序。
輸入使用stringstream(將使生活更容易)。
相關問題
- 1. 按多列對C#列表排序
- 2. C#按多個條件排序列表
- 3. 按變量排序c#對象列表
- 4. C#按2列排序表
- 5. 按一列對多列進行排序
- 6. 按C++語言按字母順序排列對象列表
- 7. 排序對象列表的列表c#
- 8. C:按字母順序排列列表
- 9. 按兩列對列表進行排序
- 10. 按多列排序
- 11. 排序/按多列
- 12. 基於一個列表對多個列表排序C#
- 13. Python:按「列」排序列表
- 14. c#按升序排序組合列表
- 15. C++按升序排序鏈接列表
- 16. C#列表順序由排按升序
- 17. 按列排序表
- 18. JPA按多列對多列的順序排列
- 19. 按字母順序排列複雜對象的排列列表
- 20. 按升序對數據列表排序
- 21. C#Deedle按多列進行排序
- 22. 按多列對MYSQL結果排序
- 23. 按多列對數據框排序
- 24. 排序下拉列表按值排列
- 25. 排序C#列表
- 26. 按對象列表排序對象列表
- 27. c#按鍵排序的散列表
- 28. 在C#中按降序排列sql表
- 29. 按另一個列表的順序對一個列表排序
- 30. Rails在多個表中按列排序
一些代碼在這裏會很好。當你說C++列表時,你是什麼意思?一個STL向量,列表或一些自制列表?您可能想要爲數據對象重載一個運算符,但具體取決於您的實現 –
我的意思是具有四個屬性的對象的STL列表。這些屬性的類型分別爲string,integer,integer和double –