stl迭代器作为返回值会出什么问题?
初用STL,出现了很多问题,大家帮忙看一下,这几行代码有什么问题?难道迭代器不能作为返回值吗?classuser{public:intnum;user(inti):num...
初用STL,出现了很多问题,大家帮忙看一下,这几行代码有什么问题?难道迭代器不能作为返回值吗?
class user
{
public:
int num;
user(int i):num(i){}
};
list<user>::iterator f(list<user> u)
{
return u.begin();
}
int main()
{
list<user> u;
user use(1);
u.push_front(use);
list<user>::iterator iu=f(u);
cout<<iu->num<<endl;
system("pause");
}
运行时会出问题 展开
class user
{
public:
int num;
user(int i):num(i){}
};
list<user>::iterator f(list<user> u)
{
return u.begin();
}
int main()
{
list<user> u;
user use(1);
u.push_front(use);
list<user>::iterator iu=f(u);
cout<<iu->num<<endl;
system("pause");
}
运行时会出问题 展开
3个回答
展开全部
最好别用这种返回方式,没哪本书推荐你这样写,迭代器容易失效.你最好还是返回物体本身,或者它的指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没什么 问题啊,只是有些可优化的地方
更多追问追答
追问
运行没有问题吗?
追答
没觉得这儿会有问题,只是这样用不太好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询