stable_sort

 

  
  
  
  
  1. #include <iostream>  
  2. #include <vector>  
  3. #include <algorithm>  
  4. #include <string>  
  5. using namespace std;  
  6.  
  7. bool g_isDecend = true;  
  8.  
  9. int TransplateStringToInt(const string& var)  
  10. {  
  11.     if(var.compare("危险") == 0 )  
  12.         return 1;  
  13.     else if(var.compare("含有危险模块") == 0 )  
  14.         return 2;  
  15.     else if(var.compare("未知") == 0 )  
  16.         return 3;   
  17.     else if(var.compare("含有未知模块") == 0 )  
  18.         return 4;  
  19.     else if(var.compare("正在检测") == 0 )  
  20.         return 5;  
  21.     else if(var.compare("安全") == 0 )  
  22.         return 6;  
  23.     else 
  24.         return 0;   
  25.            
  26. }  
  27. bool compareFunc(const string& var1, const string& var2)  
  28. {  
  29.      int nVar1 = TransplateStringToInt(var1);  
  30.      int nVar2 = TransplateStringToInt(var2);  
  31.      return g_isDecend ? (nVar1 >= nVar2 ?  0: 1) : (nVar1 >= nVar2 ?  1: 0) ;   
  32. }  
  33.  
  34. void printStr(string& str)  
  35. {  
  36.     cout<<str<<endl;      
  37. }  
  38.  
  39. void SortFunc(vector<string>& strSort)  
  40. {  
  41.     stable_sort(strSort.begin(), strSort.end(), compareFunc);  
  42.     for_each(strSort.begin(), strSort.end(), printStr);  
  43. }  
  44. int main(int argc, char *argv[])  
  45. {  
  46.     vector<string> strSort;  
  47.     strSort.push_back("危险");  
  48.     strSort.push_back("未知");  
  49.     strSort.push_back("安全");  
  50.     strSort.push_back("正在检测");  
  51.     strSort.push_back("安全");  
  52.     strSort.push_back("含有未知模块");  
  53.     strSort.push_back("含有危险模块");  
  54.     strSort.push_back("未知");      
  55.     strSort.push_back("危险");      
  56.     strSort.push_back("正在检测");    
  57.     strSort.push_back("正在检测");  
  58.     SortFunc(strSort);  
  59.     return 0;  

 

你可能感兴趣的:(C++,职场,休闲,stable_sort)