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 クラスを追加/挿入するにはどうすればよいですか?