为什么老是死循环

N_thread 2009-10-29 04:37:33
it = find_if(it, source1.end(), bind2nd(less<int>(), 10));
while (it != source1.end());
{
cout << *it << ",";
it = find_if(it + 1, source1.end(), bind2nd(less<int>(), 10)) ;
}

一运行就死循环, 单步调试到while就不向下了.
急!
...全文
61 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxiaohu_coder 2009-10-29
  • 打赏
  • 举报
回复
算法有问题哦,如果是这么一个序列5,7,15,20,在找到5以后,指针加1,可以找到7,指针再加1,但到15就找不到了,他肯定不是返回最后一个指针,所以,你的循环终止条件不对,还要加上查找不成功的判断吧
zhengjiankang 2009-10-29
  • 打赏
  • 举报
回复
哈哈 检查的时候要细心啊
N_thread 2009-10-29
  • 打赏
  • 举报
回复
谢谢
jackyjkchen 2009-10-29
  • 打赏
  • 举报
回复
确实是的,有分号就跟不进去了
kouwenlong 2009-10-29
  • 打赏
  • 举报
回复
while (it != source1.end());
多了个分号。
wjf8882300 2009-10-29
  • 打赏
  • 举报
回复
while (it != source1.end()); //这个分号干吗用?晕
{
cout < < *it < < ",";
it = find_if(it + 1, source1.end(), bind2nd(less <int>(), 10)) ;
}
feifanup 2009-10-29
  • 打赏
  • 举报
回复
while 那一行多了个分号
FAINT
jackyjkchen 2009-10-29
  • 打赏
  • 举报
回复
不会跟到find_if里面吗

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧