vector klasse



  • Hallo,

    ich hab ein problem und zwar möchte ich bei einer klasse mit vectoren arbeiten soweit alles gut, aber ich bekomme es einfach nicht hin, dass man werte im main zuweisen kann.
    vielleicht könnte mir jemand einen denkanstoß dafür geben 🙂

    gruß gucky



  • Wie ist der Code? Wo sind die Fehlermeldungen?

    In C++ Referenze sind Beispiele: http://www.cplusplus.com/reference/stl/vector/


  • Mod

    Bei solchen Fragen frage ich mich, ob du wirklich etwas wissen willst oder einfach nur rumtrollst.

    Denkanstoß: http://www.cplusplus.com/reference/stl/vector/vector/



  • [cli]int main()
    {
    BigNum v1;

    v1.zahlen = 1; // so würde man es machen mit int, aber zahlen ist ein vector

    return 0;
    }

    so das ist mein problem und es geht so nicht



  • Hallo Gucky,

    wo ist genau das Problem?

    vector<int> v;
    
    //vector mit Werten füllen
    for(int i = 0; i < 10; i ++)
    {
    	v.push_back(i);
    }
    
    //lesender Zugriff auf den vector
    for(int i = 0; i < 10; i++)
    {
    	cout << v.at(i) << "\n";
    }
    

    Viele Grüße,
    MaBa



  • 1. Nutze Codetags
    2. benutze FUNKTIONSFÄHIGE Beispiel!
    3. Wenn zahlen ein Vektor ist, warum setzt du ihn gleich 1?

    Elemente werden mittels push_back(1) z.b. zugewiesen.

    v1.zahlen.push_back(1);
    

    Wobei mich mich hier frage wie ist "zahlen" definiert? std::vector<?>

    Wir können nicht hellsehen...


  • Mod

    Gucky schrieb:

    [cli]int main()
    {
    BigNum v1;

    v1.zahlen = 1; // so würde man es machen mit int, aber zahlen ist ein vector

    return 0;
    }

    so das ist mein problem und es geht so nicht

    Es geht immer noch um deine Bibliothek für große Zahlen? Was du brauchst ist ein Zuweisungsoperator und ein Umwandlungskonstruktor. Den Zuweisungsoperator erzeugt dir dein Compiler vermutlich ohnehin schon passend (wenn du in deiner Klasse keine Pointer oder ähnliches hast), daher reicht ein passender Konstruktor ohne explicit :

    class foo
    {
      std::vector data;
    
    public:
      foo(int i)
      {
        // data entsprechend füllen
      }
    }
    


  • leider sind in meiner klasse refernzen, dass heißt mein compiler erzeugt kein zuweisungsoperator automatisch
    kann der umwandlungskonstruktor so aussehen??

    BigNum (int a)
    {
     zahlen.push_back(a);
    }
    

  • Mod

    Gucky schrieb:

    leider sind in meiner klasse refernzen, dass heißt mein compiler erzeugt kein zuweisungsoperator automatisch

    Dann wirst du sowieso einen schreiben wollen, damit du deine Klasse vernünftig benutzen kannst. Es wäre theoretisch natürlich auch möglich einen Zuweisungsoperator für die Zuweisung eines ints an deine Klasse zu schreiben. Aber der übliche Weg wäre wie schon gesagt der Weg über die implizite Konvertierung.

    kann der umwandlungskonstruktor so aussehen??

    BigNum (int a)
    {
     zahlen.push_back(a);
    }
    

    Kann schon sein, ich kenne ja deine Klasse nicht genau.



  • könnte mir jemand dafür einen ansatz geben, wie ich eine zahl dann dem typ (vector) zuweisen kann, denn ich habb kein plan wie man das mnachen kann 😞



  • Gucky schrieb:

    könnte mir jemand dafür einen ansatz geben, wie ich eine zahl dann dem typ (vector) zuweisen kann, denn ich habb kein plan wie man das mnachen kann 😞

    Wir auch nicht, denn wir kennen deine Klasse und die Implementation nicht... Ich denke du solltest an deinen Grundlagen arbeiten und versuchen dir das Thema an einfachen Beispielen zu ergründen. Denn so wird das mit deinem Vorhaben nichts.


Anmelden zum Antworten