私は数を得た最初のアイデアは、右の数字は文字列になり、その後、文字列を比較します。行うには、ソートの機能であることが判明した答えを読んで、ソート機能をソートすることは本当に万能薬です。サイズの2つの文字列を比較し、私の考えは、その大きさを比較して、文字列から要素を取らなければならないし、答えのアプローチは、直接、文字列、文字列の特性の使用を比較することですされています。もう一つの問題は、書面でのコメントは、ここで再び、なぜ静的メンバ関数を定義する必要があり、何の静的データメンバが存在しないということですか?ここで使用した場合、唯一の説明は、それがクラスに属し、静的メンバ関数は、任意のオブジェクトに属していないということです。
1の#include <iostreamの> 2の#include < ストリング > 3の#include <ベクトル> 4の#include <アルゴリズム> 5 // の#include <sstream提供> 6 使って 名前空間STDを、 7 クラスソリューション{ 8 公共: 9 列 PrintMinNumber(ベクトル< INT > 番号){ 10 列RES。 11 であれば(numbers.size()<= 0)// 判断传来的ベクター是否为空 12 戻りRES。 13 //文字列の大= 0; 14 / * 15 のための(I = 0 int型、iが++; iがnumbers.size()<) 16 { 17 列CUR = to_stringに(番号[I])を、 18 BOOL SIG = comparetwo(CUR、RES)。 19 IF(SIG) 20の RES = CUR + RES。 21 他の 22 のRES =のRES + CUR。 23 } 24 * / 25 ベクター< ストリング > ST。 26 のために(int型 iは= 0 iが++; iがnumbers.sizeを()< ) 27 { 28 列 CUR = to_stringに(番号[I])。 29 st.push_back(CUR)。 30 } 31 ソート(st.begin()、st.end()、comparetwo)。 32 33 のために(int型 iは= 0 ; iはst.sizeを()<; iは++ ) 34 { 35 RES = RES + ST [i]は、 36 } 37の リターンRES。 38 39 } 40 / * 41 BOOL comparetwo(列A、列B) 42 { 43 用(INT I = 0、J = 0; iはa.size()、Jが<b.size()<;) 44 { 45 IF([I]> B [J]) 46 リターン偽。 47 他の 48 の場合([i]が<B [J]) 49 リターンはtrue。 50 他の 51 { 52 IF(![I + 1] = '\ 0') 53 I ++。 54 (B [J + 1] = '\ 0'!)であれば 55 J ++; 56 } 57 } 58 真の復帰に; 59 } 60 * / 61 静的 BOOLの comparetwo(文字列 Aは、文字列 B)// 静的追加されることはありません開始、ラインの機能の間違ったソートが、なぜあなたは、静的追加したいん報告? 62は 、{ 63である 文字列 TEST1 = A + 、B 64 文字列 TEST2 = B + A; 65 IF(TEST1> TEST2) 66 リターン falseに、 67 他の 68 { 69 リターン trueに; 70 } 71です } 72 }。 73 のint main()の 74 { 75 ソリューションので、 76 ベクター< INT >テスト{ 3、5、1、4、2 }。 77 COUT << so.PrintMinNumber(テスト)<< ENDL。 78 リターン 0 。 79 }