2017-02-02 203 views
-3

我有三个String阵列排序阵列

A: [-22, -3, 2.2, a] 
B: [-22, -3, 2.2, b] 
C: [-22, 0, 2.2] 

排序我后想获得该序列

C: [-22, 0, 2.2] 
A: [-22, -3, 2.2, a] 
B: [-22, -3, 2.2, b] 

一对阵列之间的比较在第一元件上的阵列做。如果元素相同,则第二个元素等等。

必须使用什么比较?

+1

什么是这些阵列的类型?什么是'a'和'b'? – khelwood

+1

你想要考虑'a'和'b'的ascii值吗? –

+0

什么是'a','b'? –

回答

0
#include <string> 
#include <vector> 
#include <iostream> 
#include <algorithm> 

using namespace std; 

struct values{ 
    vector<string> ve; 
}array[100]; 

bool comp(values a, values b){ 
    if(a.ve.size()<b.ve.size() || a.ve<b.ve) 
     return true; 
    return false; 
} 

int main(){ 

    int number, size; 
    string str; 
    cin>>number; //Number of string arrays 
    for(int i=0;i<number;i++){ 
     cin>>size; // Number of element in each array 
     for(int j= 0;j<size;j++){ 
      cin>>str; 
      array[i].ve.push_back(str); 
     } 

    } 
    sort(array, array+number, comp); 

    for(int i=0;i<number;i++){ 
     for(int j= 0;j<array[i].ve.size();j++){ 
      cout<<array[i].ve[j]<<" "; 
     } 
     cout<<"\n"; 

    } 
    return 0; 
} 

输入:

3  
4 
-22 -3 2.2 a 
4 
-22 -3 2.2 b 
3 
-22 0 2.2 

输出:

-22 0 2.2 
-22 -3 2.2 a 
-22 -3 2.2 b 
+0

你为什么用C++代码回答java问题? –

+0

Ooops我没注意到java标记。 – Masum