2017-06-18 11 views
-3

Dies ist mein Code:C++ Vergleicht man Elemente von 2 verschiedenen Vektoren

// vector 2, vector 3 contain each 7 integers and vector 1 contains 7 vectors of 7 integers. 

std::vector < std::vector<int> > vector1; 
vector1.push_back(vector2); 
vector1.push_back(vector3); 

if(vector1[1][0] == vector1[0][0]) { 
    std::cout<<"Equal"; 
} 

Mein Compiler stürzt wegen des Vergleichs der zwei Vektoren. Ich habe das Gefühl, dass es einen anderen Weg gibt, Multi-Vektoren zu vergleichen. Ich habe online gesucht und kann nichts finden.

Danke!

+0

Willkommen bei Stack Overflow. Bitte nehmen Sie sich die Zeit, [The Tour] (http://stackoverflow.com/tour) zu lesen und beziehen Sie sich auf das Material aus der [Hilfe] (http://stackoverflow.com/help/asking), was und wie Sie können fragen Sie hier. –

+5

Ihr ** Compiler stürzt ab **? Was meinen Sie? –

+1

'vector1.push_back (10);' ist ungültig und sollte nicht kompiliert werden. 'vector1' kann kein' int' speichern. Sie müssen einen Vektor "push_back" drücken. Dies riecht allerdings nach einem [X-Y-Problem] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Was ist Ihr Gesamtziel? – user4581301

Antwort

0

Dieser Code tut genau das, was Sie sagen, das nicht funktioniert. Wenn Sie den Vektor < Vektor < int>> die richtige Weise erstellt haben, ist mit diesem Code nichts falsch. Sie vergleichen nur zwei Zahlen.

#include <iostream> 
#include <vector> 

using std::cin; 
using std::cout; 
using std::vector; 

int main() 
{ 
    vector<int> v1{1,2}; 
    vector<int> v2{2,3}; 
    vector<vector<int> > v3; 
    v3.push_back(v1); 
    v3.push_back(v2); 
    if(v3[0][0] == v3[1][0]) 
    { 
     cout << "The first elements of the first and second vector of v3 are equal" << std::endl; 
    } 
    else 
     cout << "They are different" << std::endl; 
    return 0; 
} 
Verwandte Themen