C++ std :: setを繰り返し処理しようとしていますが、メンバ関数にアクセスしようとしています。しかし、私の次のコードは動作していません。C++でイテレータを使ってメンバ関数にアクセスする方法std :: set
#include <iostream>
#include <set>
using namespace std;
class A;
std::set<A> m_vector;
std::set<A>::iterator iter = m_vector.begin();
class A
{
public:
int age;
A()
{
cout << "enter age" << endl;
cin >> age;
}
int getAge()
{
return age;
}
private:
};
void addNewVoter()
{
m_vector.insert(A());
}
int main()
{
addNewVoter();
addNewVoter();
addNewVoter();
for (size_t i = 0; i < m_vector.size(); i++)
{
cout << (*iter)->getAge(); /* Here is the mistake. I can't invoke this.*/
iter++;
}
}
私の質問は、どのようにイテレータでメンバー関数を呼び出すことができますか?最初
'iter-> getAge() 'または'(* ITER).getAge()' insert'または 'push_back'イテレータを無効とベクトルの変更' – max66
。 – nwp
'std :: set m_vector;'これはグローバルなものです。 – LogicStuff