私はC++を初めて使用しており、ベクターの要素にアクセスするのに少し問題があります。クラスAに体mystructへのポインタのベクトルである:構造体へのポインタのベクトル+ポインタ型のベクトルで、インターレーターが指す要素にアクセスする必要があります
struct myStruct{
int val;
string name;
}myStruct;
Class A{
...
vector<myStruct*> vec;
B create()const;
}
Class B{
...
string Name(); //return name of current struct
vector<myStruct*>::iterator beginning;
int offset; //offset from the beginning
}
クラスA、クラスBのオブジェクトが作成される方法create()const
を有しています。それはある種のイテレータのように動作し、ある種のプロパティを持つvec
の一部になると考えられています。方法Name()
は私がClass B
の新しいオブジェクトを作成し、lower_bound()
によってvec
の反復部分の先頭を選択して、new_object.beginning
に入れA.create()
でpossition vec[offset]
にmyStruct
からname
を返すことになっています。
B.Name()
を実装したいときは、イテレータbeginning
を移動して逆参照することで、vec
の構造体の要素にしかアクセスできません。コマンドの正しい形式は何ですか、それは私が望むことです - イテレータbeginning
を正しく参照しないでください。
私のIDEでの完了は*(*(beginning + offset))->name
のようなものに私をリードしているが、それは私がやりたいだろうコマンドの正しい形式であり、何Pointer type is required