Vector nach und nach füllen?



  • Hallo,

    ich stehe momentan vor dem Problem, dass ich einen Vektor bauen will, den ich aber erst nach und nach fülle. Also am Anfang soll er Größe 0 haben und dann beliebig gefüllt werden. Ich kann dafür kein normales Array verwenden, weil ich später wieder Werte aus dem Vektor löschen will.

    Ich hab es mal so versucht, aber irgendwie klappt es nicht:

    #include <vector>
    
    vector<Box> emptyVec(0);
    if (emptyVec.size() > 1)
    {
        for (int k = 0; k < emptyVec.size() - 1; k++)
        {
             if (canMerge(emptyVec[k], spaceStack.top()))
             {
                 Box temp = spaceStack.top();
                 spaceStack.pop();
                 spaceStack.push(merge(emptyVec[k], temp));
                 vector<Box>::iterator del = find(emptyVec.begin(),emptyVec.end(), temp);
                 emptyVec.erase(del);
             }
        }
    }
    emptyVec[emptyCtr] = spaceStack.top();
    emptyCtr ++;
    

    Bin wirklich für jeden Tip froh!

    Vielen Dank und liebe Grüße,
    Chrissi



  • Hi,

    emptyVec.push_back(spaceStack.top());
    

    damit hängst du das element an den Vector an.
    und mit emptyVec.size() bekommst du die anzahl der elemente

    So wie du das machen wolltest mit [] = blub geht das nicht.
    Das würde gehen wenn an der stelle [n] ein element wäre. Aber das würdest du überschreiben.
    Willst du ein Element anhängen benutze push_back().

    MfG eViLiSSiMo



  • Danke ! Es klappt nun 🙂


Anmelden zum Antworten