2017-07-09 3 views
0

Ich möchte mehrere Array mit Vektor des Vektors einfügen.
Aus diesem I/P ist wie folgt:Mehrere Array mit Vektor des Vektors

2 : Number of array (can be vary)  

3 1 2 3 : 3(size of array) 1 2 3(elements in array)  

4 4 5 6 7 : 4(size of array) 4 5 6 7 (elements in array)  

Dann muss ich auf sie eine Operation durchzuführen.
Alle I/P werden vom Benutzer eingegeben. Nur seine Reichweite ist angegeben.

2 <= No of array <= 10 


1 <= Elements in array <= 1000000 

Für oben Ich habe versucht, folgende Möglichkeiten:

int main() 
{ 
    int no_of_array, size; 
    long int num; 
    int j = 0; 

    cin >> no_of_array; 

1. Weg:

vector < vector<int> > array_vector[no_of_array]; 
    while(no_of_array --) 
    { 
     cin >>size; 
     for(int i = 0; i < size ; i++) 
      { 
       cin >> num; 
       array_vector[j].push_back({num}); 
      } 
      j++; 
    } 
    cout<< vector_array[1][2]; // Error 

2. Art und Weise:

vector< vector<int> > array_vector; 
while(no_of_array --) 
{ 
    cin >> size; 
    for(int i = 0 ; i < size ; i++) 
    { 
     cin >> num; 
     array_vector[j].push_back(num); 
    } 
    j++; 
} 
cout<< vector_array[1][2];  // Error  

3. Art und Weise: (Arbeits)

vector<vector<int> > array_vector; 
for(int i = 0 ; i < no_of_array ; i++) 
{ 
    cin >> size; 
    vector<int> v; 
    for(int j = 0 ; j < size ; j++) 
    { 

     cin >> num; 
     v.push_back(num); 
    } 
    array_vector.push_back(v); 
}  
cout<<array_vector[1][2]; // No Error   

Irgendwo lese ich 3. Weg Vektor Vektor ist nicht geeignet für wettbewerbsfähige Programmierung. Warum ??
Welchen Fehler habe ich beim Überqueren der Elemente mit dem ersten zwei Ansatz gemacht?

+4

"... ist nicht geeignet für eine wettbewerbsfähige Programmierung ..." - so what? Diese Websites mit "kompetitiver Programmierung" interessieren sich nicht für Best Practices oder das Schreiben von wartbarem Code. Verschwende deine Zeit nicht damit. Sie werden nur schlechte Angewohnheiten und Dinge lernen, die Sie wahrscheinlich nie in der realen Welt verwenden werden. Schreibe * echte * Programme und lies stattdessen [gute Bücher] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). –

+0

@ Jesper Juhl echte Programmierung ??? Bitte, kannst du Beispiel geben ?? – Tushar

+2

Ich meine, schreibe echte Programme, die du tatsächlich * brauchst * oder * willst *, anstatt Lösungen für dumme Probleme von konkurrierenden Programmierseiten zu schreiben. –

Antwort

1

können Sie versuchen, den folgenden Code

int main(int argc,char* argv[]) 
{ 
    unsigned int num; 
    int elm; 
    unsigned int size; 

    std::cout << "Enter the number of rows" << std::endl; 
    std::cin >> num; 
    std::vector<std::vector<int> > a(num,std::vector<int>(0,0)); 

    for(unsigned int i=0;i<num;i++) 
    { 
     std::cout << "Enter the size of " << i+1 << "array:" << std::endl; 
     std::cin >> size; 

     for(unsigned int j=0;j<size;j++) 
     { 
      std::cout << "Enter the element" <<std::endl; 
      std::cin >> elm; 

      a[i].push_back(elm); 
     } 
    } 

    for(unsigned int i=0;i<a.size();i++) 
    { 
     for(unsigned int j=0;j<a[i].size();j++) 
     { 
      std::cout << "Element at [" <<i<<"][" <<j <<"] is " << a[i][j] <<std::endl; 
     } 
    } 

    return 0; 
} 
Verwandte Themen