是否可以使用const_iterator迭代直到main()函数中的列表结尾?我尝试使用iter-> end()但我无法弄明白.
#include <list>
#include <string>
using std::list;
using std::string;
class list_return
{
public:
list <string>::const_iterator get_list()
{
_list.push_back("1");
_list.push_back("2");
_list.push_back("3");
return _list.begin();
}
private:
list <string> _list;
};
int main()
{
list_return lr;
list <string>::const_iterator iter = lr.get_list();
//here, increment the iterator until end of list
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您似乎已经"封装"了列表而没有暴露访问end()
列表方法的方法,您需要迭代才能知道何时完成.如果你添加一个返回_list.end()
你的list_return
类的方法(我称之为get_list_end),你可以这样做:
for (std::list<std::string>::const_iterator iter = lr.get_list();
iter != lr.get_list_end();
++iter)
{
//...
}
Run Code Online (Sandbox Code Playgroud)