-9
イテレータを初めて使用していますが、私は問題に直面しています。これによりベクトルイテレータを使用してオブジェクトにアクセスしようとしています
vector<MyClass*> MyVector;
MyVector.push_back(new object);
MyVector.push_back(new object);
MyVector.push_back(new object);
vector<MyClass*>::iterator temp;
temp = MyVector.end(); //because I want to use a function for the last one
Sum += temp->get_num(); //function that returns an object member
は、私が取得し、オブジェクトの内部に格納されているいくつかの数字を合計達成したい:
この
は、私はベクトルを作成し、オブジェクトにいくつかのポインタをプッシュするコードの一部です。しかし、それはコンパイルされないようだ。エラーは次のとおりです。ポインタである '*一時.__ gnu_cxx :: __ normal_iterator < _Iterator、_Container> :: operator->>()' のメンバー 'get_num' のための
240 27〜\ TEST.CPP [エラー]要求'MyClass *'と入力してください。
一部の書籍やチュートリアルをお読みください。 – Yves
あなたは 'MyVector.back()'を探しています。 'end()'は1つの過去のイテレータであり、逆参照するとUBがトリガされます。 – Quentin
'(* temp) - > get_num()'です。 –