C++中迭代器能用在数组上吗
int*presult;//vector<int>::iteratorpresult;presult=find(ia,ia+6,search_value);//ia[6]...
int *presult;
//vector<int>::iterator presult ;
presult = find(ia,ia+6,search_value); //ia[6] = {1,2,3,4,5,6};
为什么用指针可以,用迭代器却不行呢。。求助 展开
//vector<int>::iterator presult ;
presult = find(ia,ia+6,search_value); //ia[6] = {1,2,3,4,5,6};
为什么用指针可以,用迭代器却不行呢。。求助 展开
2个回答
展开全部
是可以的。
迭代器可以使用解引用操作符(*操作符)来访问迭代器所指向的元素(这点与指针类似)
例:
*iter=0; //将iter所指向的元素值设置为0
++iter; //指向下一个元素
*iter=1; //将iter所指向的这个元素(刚才设置为0的元素的下一个元素)值设置为0
数组是由类型名,标识符和维数的复合数据类型,数组的维数必须用值大于等于1的常量表达式定义(包含整形字面值常量、枚举常量、用常量表达式初始化的整型const对象)
数组的操作:
数组的操作是通过下标操作符来访问的,在用下标访问元素时,数组下标的类型为size_t与vector的迭代器类似,数组的遍历也可以用指针来实现指针。
迭代器可以使用解引用操作符(*操作符)来访问迭代器所指向的元素(这点与指针类似)
例:
*iter=0; //将iter所指向的元素值设置为0
++iter; //指向下一个元素
*iter=1; //将iter所指向的这个元素(刚才设置为0的元素的下一个元素)值设置为0
数组是由类型名,标识符和维数的复合数据类型,数组的维数必须用值大于等于1的常量表达式定义(包含整形字面值常量、枚举常量、用常量表达式初始化的整型const对象)
数组的操作:
数组的操作是通过下标操作符来访问的,在用下标访问元素时,数组下标的类型为size_t与vector的迭代器类似,数组的遍历也可以用指针来实现指针。
展开全部
不是迭代器不行,而是这句find(ia,ia+6,search_value);返回的是int *, 赋值给迭代器失败了。
迭代器可以这样使用:
vector<int> va(ia, ia + 6);
vector<int>::iterator presult ;
presult = find(va.begin(),va.end(),search_value);
迭代器可以这样使用:
vector<int> va(ia, ia + 6);
vector<int>::iterator presult ;
presult = find(va.begin(),va.end(),search_value);
追问
= =额后来搞懂了。。不过好久了。。不过我找到了一种更好的方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询