容器的循环遍历
解决时间 2021-02-24 16:50
- 提问者网友:温柔港
- 2021-02-23 22:52
用算法(algorithm.h)循环遍历出现相同的问题:
bool IsOdd(int i){ return ((i%2) == 1);}
void main(){
int a[] = { 1,2,2,2,3,4,5,5,4,3,2,2,2,1,0 };
vector v1(a,a+sizeof(a)/sizeof(a[0]) );
vector::iterator iter = v1.begin();
for(; iter != v1.end() ; ++iter){
iter = find_if( iter, v1.end(), IsOdd);
cout << *iter << " "; // 能输出1 3 5 5 3 1 但是输出完弹出 Debug Assertion Failed!
// Expression : vector iterator not dereferencable
}
}
最佳答案
- 五星知识达人网友:人類模型
- 2021-02-23 23:35
iter = find_if( iter, v1.end(), IsOdd);在iter指向最后的0的时候,find_if将查找不到,此时iter = v1.end(),进行cout打印将出错。应改成:
iter = find_if(iter, v1.end(), IsOdd);
if(iter == v1.end()) //
break; //
cout << *iter << " ";
全部回答
- 1楼网友:一袍清酒付
- 2021-02-23 23:57
遍历指定的linearlayout中的控件么? 你说的加id肯定是需要的 这是很容易根据id来得到linearlayout对象,得到之后 你再看看linearlayout对象中有什么方法可以得到子控件吧 具体方法名我不知道 不过应该是有的
我要举报
大家都在看
推荐资讯