Új hozzászólás Aktív témák

  • Gyuri16

    senior tag

    segitseget kernek pointerek vs operator overloading temaban. egy fa adatstrukturat csinalok, ahol minden node-nak lehet valamennyi pointere a gyerekeire. ezt egy vector<Node*> segitsegevel kepzeltem. elore kell lefoglalni a kontruktorban megadott szamu pointernek a tombot (akkor is ha null lesz csak az erteke) es fokozatosan hozzaadni a gyerekeket (tudom, hogy lehet jobban is, azt kesobb csinalom. a feladat osszehasonlitani a kulonbozo megoldasokat). szeretnek a Node osztalynak egy [] operatort, amivel a gyerekekhez pointerekkent lehetne hozzaferni. egyelore mindig referenciakkal csinaltam hasonlot,megmutatom mire jutottam:

    class Node {
    public:
    int sigma;
    // Node** child;
    vector<Node*>* child;
    int value;
    Node(int sigma);
    ~Node();
    Node& operator[](const int index);
    };

    Node& Node::operator[](const int index) {
    return *(*child)[index];
    }

    Node::Node(int sigma): sigma(sigma), value(0) {
    /* child = new Node *[sigma];
    for (int i = 0; i < sigma; i++) {
    child[i] = NULL;
    }*/

    child = new vector<Node*>(sigma);
    }

    Node::~Node() {
    /* for (int i=0; i < sigma; i++) {
    if (child[i] != NULL) {
    delete child[i];
    }
    }
    delete [] child;
    */

    for (vector<Node*>::iterator it = child->begin(); it < child->end(); ++it) {
    delete *it;
    }
    delete child;
    }

    ami a kommentarokban van, az a regi megoldas tombokkel ami mukodik is jol, olyat szeretnek csak vectorral es operatorral, tehat ami eddig n->child[i ] volt az legyen n[i ] .

    ezt az osztalyt kesobb szeretnem igy hasznalni:

    Node n = new Node(10);
    Node n[0] = new Node(10);
    stb..

    remelem ertheto mi a problema, koszonom elore a segitseget.

    [ Szerkesztve ]

    Nem vagyok egoista, csak uborkagyalu!

Új hozzászólás Aktív témák