【发布时间】:2017-03-05 10:51:11
【问题描述】:
我正在尝试遍历 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改变向量会使迭代器失效。 -
std::set<A> m_vector;它是全球性的,哇。