Ich habe einen 2D Vektor vector<vector<int> > det;
und ich möchte den letzten Wert oder den zuletzt push_back
'd Wert einem anderen 2D Vektor zuweisen v.
Das ist was ich versucht v = *(det.rbegin());
, aber es zeigt einen Fehler. Was ist der richtige Weg?
Fehlermeldung: Konvertierung von 'std :: vector' auf nicht-skalare Typ 'std :: vector>' angefordertEinen Iterator auf einen 2D Vektor auflösen und seinen Wert einem anderen 2D Vektor zuweisen
Antwort
Der letzte Eintrag Ihrer 2D-Array ist nicht ein 2D-Array, dh vom Typ Vektor < Vektor < int>>, aber vom Typ Vektor < int>.
Als solche kann sie nicht auf eine andere Variable vom Typ zugeordnet werden
Vektor < Vektor < int>>
Dies funktioniert:
#include<iostream>
#include<vector>
int main(){
std::vector<std::vector<int> > det, det2;
std::vector<int> vector1, vector2, vector3;
vector1.push_back(3);
vector1.push_back(4);
vector1.push_back(5);
vector2.push_back(13);
vector2.push_back(14);
vector2.push_back(15);
vector3.push_back(113);
vector3.push_back(114);
vector3.push_back(115);
std::vector<int> member_of_2darray;
det.push_back(vector1);
det.push_back(vector2);
det.push_back(vector3);
det2.push_back(det.back());
std::cout<<det2[0][2]<<std::endl; // returns 115
//last:element
std::cout<<det.back().back()<<std::endl;
}
bearbeiten: Wenn Sie deperately Iteratoren verwenden möchten : Hier ist ein funktionierendes Beispiel:
#include<iostream>
#include<vector>
int main(){
std::vector<std::vector<int> > det, det2;
std::vector<int> vector1, vector2, vector3;
std::vector<std::vector<int> >::iterator it;
vector1.push_back(3);
vector1.push_back(4);
vector1.push_back(5);
vector2.push_back(13);
vector2.push_back(14);
vector2.push_back(15);
vector3.push_back(113);
vector3.push_back(114);
vector3.push_back(115);
std::vector<int> member_of_2darray;
det.push_back(vector1);
det.push_back(vector2);
det.push_back(vector3);
it = det.end();
det2.push_back(*(it-1));
std::cout<<det2[0][2]<<std::endl; //output: 115
}
Ich möchte den Wert des letzten Elements von det extrahieren, aber die Größe von det ist nicht bekannt. – user6291111
das letzte Element von det.back(). Oder, mit einem Iterator ist das letzte Element * (it - 1). –
Das Problem war mit dem Rückgabetyp von * (det.rbegin()), die Vektor
- 1. Segmentierungsfehler in push_back für einen 2d Vektor
- 2. 2D-Vektor-Multiplikation
- 3. Zugriff auf Vektorelemente in einem anderen Vektor durch einen Iterator?
- 4. Berechnen eines Kreuzprodukts 2D Vektor
- 5. Speichern eines 2D-Arrays in einem 2D-Vektor in C++
- 6. Blick in Richtung 2d Vektor
- 7. Verweis auf Element in 2d Vektor (C++)
- 8. Wie push_back etwas in einem 2D-Vektor
- 9. Wie 2D-Vektor in AS3
- 10. C++ Füllen Sie einen Vektor mit einem anderen Vektor
- 11. WPF 2d Vektor-Grafik-Bibliothek
- 12. Clojure lesen Datei auf 2D-Vektor
- 13. Einfügen von Elementen in 2D-Vektor
- 14. Dynamisch Zuordnung 2D Vektor C++
- 15. Initialisierung 2D Vektor in C++
- 16. einen Iterator auf einen Vektor drücken (oder jede Sammlung)
- 17. Wie erstelle ich einen 2D-Vektor in Python
- 18. Fügen Sie einen Vektor in einen Vektor
- 19. drehen, um einen Vektor mit einem anderen Vektor Orthogonalität
- 20. C++ erweitern einen Vektor mit einem anderen Vektor
- 21. C++ einen Vektor an einen anderen anhängen
- 22. Sortierung 2D-Vektor-Array Basierend auf einer Säule
- 23. Howto elegant eine 2D-Rechteck-Region aus einem C++ - Vektor
- 24. C++ Vektorinhalt auf einen anderen Vektor
- 25. Überprüfen Sie, ob ein Vektor mindestens einen Wert von einem anderen Vektor enthält
- 26. Passing einen Iterator und Vektor an eine Funktion
- 27. Vektor von Strukturen, die einen anderen Vektor enthält
- 28. Ersetze Werte in einem Vektor basierend auf einem anderen Vektor
- 29. Der beste Weg, um einen 2D Tensor mit einem Vektor in TensorFlow zu glätten?
- 30. Vector Iterator nicht dereferencable (Vektor innerhalb Vektor)
Betrachten Lesen der Fehlermeldung. – user2079303
@ user2079303 Ich habe die Fehlermeldung schon gelesen, aber was bedeutet 'std :: vector>'? – user6291111
Bitte geben Sie den gesamten Code an. –