2017-02-02 270 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