如何引用vector<int>::iterator

比如定义一函数intsum(vector<int>::iterator&beg,vector<int>::iterator&end);为什么vector<int>::it... 比如定义一函数
int sum(vector<int>::iterator &beg,vector<int>::iterator &end);
为什么vector<int>::iterator &beg这种写法是错误的?那如果我想引用迭代器该怎么写?(就像如果引用指针可以写成int *&p;)
展开
 我来答
百度网友4f79a57
2008-12-26 · TA获得超过107个赞
知道答主
回答量:92
采纳率:0%
帮助的人:86.9万
展开全部
使用上的问题
估计你是这样用的
sum(vec.begin(),vec.end());
vector::begin()的定义是返回一个临时对象,因此具有const属性,
所以无法被你的函数直接调用。

如果把函数定义为
sum(const vector<int>& 。。。)就能使用,但这样你的函数sum里就不能iterator了,
所以你的调用改成

vector<int>::iterator beg = vec.begin();
vector<int>::iterator end = vec.end();
sum(beg,end);

或者你去找些typetrait的资料,可以去掉const的限制
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式