- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <string>
- using namespace std;
- bool g_isDecend = true;
- int TransplateStringToInt(const string& var)
- {
- if(var.compare("危险") == 0 )
- return 1;
- else if(var.compare("含有危险模块") == 0 )
- return 2;
- else if(var.compare("未知") == 0 )
- return 3;
- else if(var.compare("含有未知模块") == 0 )
- return 4;
- else if(var.compare("正在检测") == 0 )
- return 5;
- else if(var.compare("安全") == 0 )
- return 6;
- else
- return 0;
- }
- bool compareFunc(const string& var1, const string& var2)
- {
- int nVar1 = TransplateStringToInt(var1);
- int nVar2 = TransplateStringToInt(var2);
- return g_isDecend ? (nVar1 >= nVar2 ? 0: 1) : (nVar1 >= nVar2 ? 1: 0) ;
- }
- void printStr(string& str)
- {
- cout<<str<<endl;
- }
- void SortFunc(vector<string>& strSort)
- {
- stable_sort(strSort.begin(), strSort.end(), compareFunc);
- for_each(strSort.begin(), strSort.end(), printStr);
- }
- int main(int argc, char *argv[])
- {
- vector<string> strSort;
- strSort.push_back("危险");
- strSort.push_back("未知");
- strSort.push_back("安全");
- strSort.push_back("正在检测");
- strSort.push_back("安全");
- strSort.push_back("含有未知模块");
- strSort.push_back("含有危险模块");
- strSort.push_back("未知");
- strSort.push_back("危险");
- strSort.push_back("正在检测");
- strSort.push_back("正在检测");
- SortFunc(strSort);
- return 0;
- }
转载于:https://blog.51cto.com/tuoxie174/643994