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};
为什么用指针可以,用迭代器却不行呢。。求助
展开
 我来答
Nor_yourgodsy
2015-11-14 · TA获得超过1.8万个赞
知道大有可为答主
回答量:3659
采纳率:82%
帮助的人:287万
展开全部
是可以的。
迭代器可以使用解引用操作符(*操作符)来访问迭代器所指向的元素(这点与指针类似)
例:
*iter=0; //将iter所指向的元素值设置为0
++iter; //指向下一个元素
*iter=1; //将iter所指向的这个元素(刚才设置为0的元素的下一个元素)值设置为0
数组是由类型名,标识符和维数的复合数据类型,数组的维数必须用值大于等于1的常量表达式定义(包含整形字面值常量、枚举常量、用常量表达式初始化的整型const对象)
数组的操作:
数组的操作是通过下标操作符来访问的,在用下标访问元素时,数组下标的类型为size_t与vector的迭代器类似,数组的遍历也可以用指针来实现指针。
luosiyong
2013-01-01 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1619万
展开全部
不是迭代器不行,而是这句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);
追问
= =额后来搞懂了。。不过好久了。。不过我找到了一种更好的方法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式