3D_Vektor
-
hallo
ich habe meine Daten(Integerzahlen) in dem folgenden 3 Dim Vektor:vector<vector<vector<int> > > 3DVec;
ich habe versucht mit der folgenden Code die erste Zeile des x.Elements(2D)zu entfernen aber leider ging nicht.
vector<vector<vector<int> > >::iterator iter = 3DVec[x].begin(); iter += 0; // 1.Zeile 3DVec[x].erase(iter);
könnte mir jemand sagen was ich falsch geschrieben habe bzw. wie ich das machen kann.
Haben sie vielen Dank
-
Nehind schrieb:
hallo
ich habe meine Daten(Integerzahlen) in dem folgenden 3 Dim Vektor:vector<vector<vector<int> > > 3DVec;
ich habe versucht mit der folgenden Code die erste Zeile des x.Elements(2D)zu entfernen aber leider ging nicht.
vector<vector<vector<int> > >::iterator iter = 3DVec[x].begin(); iter += 0; // 1.Zeile 3DVec[x].erase(iter);
könnte mir jemand sagen was ich falsch geschrieben habe bzw. wie ich das machen kann.
Haben sie vielen Dankvector<vector<vector<int> > >::iterator iter
sieht falsch aus, du willst doch einen:
vector<int>::iterator iter
oder?
-
hallo
ich glaube schon. gemeint so, wie es geschrieben ist .
ich habe schon ein ähnlisches Problem gehabt und zwar nur 2D und hat es funzt.
der Code war folgendes :vector<vector<int> > 2DVec; vector<vector<int> > ::iterator iter = 2DVec.begin(); iter += 0; // 1.Zeile 2DVec.erase(iter);
wie ich das auf 3D umschreiben soll weiss ich nicht
Danke sehr
-
Ich glaube, mit
3DVec[x].begin();
vector< vector<int> >::iterator iter = 3DVec[x].begin();
. Damit löschst du dann quasi einen
vector< vector<int> >
Wenn du aber ein Element 3. Dimension löschen willst, also nen
vector<int>
, brauchst du ja 2 angaben ( x & y ):
vector< vector< vector<int> > > 3DVec; vector< vector< vector<int> > > :: iterator iter = 3DVec[x][y].begin; 3DVec[x][y].erase(iter);
isses das was du wolltest?
-
@BlAlB
Deinen Beitrag klingelt logisch aber leider funzt nicht. ich habe deinen Code ausprobiertvector< vector< vector<int> > > 3DVec; vector< vector< vector<int> > > :: iterator iter = 3DVec[x][y].begin; 3DVec[x][y].erase(iter);
und kommt die Compiler Fehlermeldung:
error C2440: 'initializing' : 'int *' kann nicht in 'class std::vector<class std::vector<int,class std::allocator<int> >,class std::allocator<class std::vector<int,class std::alloca tor<int> > > > *' konvertiert werden Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat error C2664: 'int *__thiscall std::vector<int,class std::allocator<int> >::erase(int *)' : Konvertierung des Parameters 1 von 'class std::vector<class std::vector<int,class std::all ocator<int> >,class std::allocator<class std::vector<int,class std::allocator<int> > > > *' in 'int *' nicht moeglich Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat Fehler beim Ausführen von cl.exe. CVec.OBJ - 2 Fehler, 0 Warnung(en)
-
hi,
wollte mich grad mal diesem Problem widmen, tippe so schön den SC ein, und bei dem Vektor
vector<vector<vector<int> > > 3DVec;
kommt bei mir ne hübsche Fehlermeldung
--------------------Konfiguration: main - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
E:\temp\C++\3DVect\main.cpp(19) : error C2059: Syntaxfehler : 'Ungueltiges Suffix auf Zahl'
E:\temp\C++\3DVect\main.cpp(19) : error C2143: Syntaxfehler : Fehlendes ';' vor 'constant'
E:\temp\C++\3DVect\main.cpp(19) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'DVec'
E:\temp\C++\3DVect\main.cpp(19) : error C2065: 'DVec' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.main.exe - 4 Fehler, 0 Warnung(en)
btw, ich nutze Visual C++ 6.0.
Was kann oder muss ich denn damit machen, mit der Fehlerausschrift ??
Greets from Sachsen
-
Du musst die Variable anders nennen. Es ist nicht erlaubt, einen Variablennamen mit einer Zahl beginnen zu lassen.
Gruss,
DeSoVoDaMu (auch ein Sachse^^)
-
lol, thx