將陣列中的數拼成一個最大的數c++
阿新 • • 發佈:2018-12-15
比如:
輸入 321 32 6
輸出 632321
#include<c++/4.8.2/iostream> #include<c++/4.8.2/vector> #include<c++/4.8.2/string> #include<c++/4.8.2/algorithm> using namespace std; bool com(string a,string b)//自定義比較函式 { string str1=a+b; string str2=b+a; return str1>str2?true:false; } void largestNum(vector<int> a) { if(a.empty()) return; //最後可能輸出的數字過大,所以用字串的方式處理 vector<string> str; for(int i=0;i<a.size();i++)//先將陣列元素轉成string型別 { str.push_back(to_string(a[i])); } sort(str.begin(),str.end(),com);//通過自定義比較函式,排序成從大到小 for(int i=0;i<str.size();i++) { cout<<str[i]; } cout<<endl; } int main() { vector<int> a; int n; while(cin>>n) { a.push_back(n); } largestNum(a); return 0; }