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 Dank

    vector<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 ausprobiert

    vector< 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 😃


Anmelden zum Antworten