1

Nod.java という Java のクラスを作成しました。

import java.util.ArrayList;
import java.util.Arrays;

class Nod {
        int[] vol;
        String op="";
        Nod parent; 
        int adancime;

        Nod (int[] vol, String op,Nod parent,int adancime){             
            this.vol=vol;
            this.op=op;
            this.parent = parent;
            this.adancime=adancime;
            }

        public String toString() {
        return op;
        }

        public int getAdancime() {
                return adancime;
        }

        public ArrayList<Nod> getCale(ArrayList<Nod> lnoduri) {
        lnoduri.add(0, this);
        if (parent != null) lnoduri = parent.getCale(lnoduri);
        return lnoduri;
        }

        public ArrayList<Nod> getCale() 
        { return(getCale(new ArrayList<Nod>())); }
}

C++ で書き直したいのですが、これら 2 つの関数を C++ で書き直す方法がわかりません。

public ArrayList<Nod> getPath(ArrayList<Nod> lnoduri) {
    lnoduri.add(0, this);
    if (parent != null) lnoduri = parent.getPath(lnoduri);
    return lnoduri;
}

public ArrayList<Nod> getPath(){ 
    return(getPath(new ArrayList<Nod>())); 
}

これらの関数は、各ノードのパスを親に保存します。

助けてください。

編集

関連する質問なので、ここに追加します。

Javaで「Vase」クラスに関数を書きました:

public ArrayList<Nod> succesori(Nod parent) {

    // "Nod" is another class.                          
    ArrayList<Nod> listTest = new ArrayList<Nod>();

    // operations/conditions;

    listTest.add(new Nod(vol,op,parent,adancime+1));
    return(listTest);
}

そして、C++で書き直したい:

vector<Nod*> Vase::succesori(Nod *parinte)
{
    vector<Nod*> *listTest = new vector<Nod*>();

    // operations/conditions;

    listTest.insert(new Nod(vol,op,parent,adancime+1)); 
    return (*listTest);
    }

しかし、次のコマンドを実行しようとするとエラーが発生します: listTest.insert(new Nod(vol,op,parent,adancime+1));

IntelliSense: 式にはクラス型が必要です

エラー 1 エラー C2228: '.insert' の左側にはクラス/構造体/共用体が必要です

listTest に新しい Nod クラスを追加/挿入するにはどうすればよいですか?

4

2 に答える 2