vector问题?

walterzh 2002-05-08 02:15:49
int p(vector<int> &A){
int sum = 0;
typedef vector<int>::iterator iterator;
iterator i = A.begin();
for(int n=0;i <= A.size(); ++n){
++i;
sum += *i;
}
return sum;
}
求vector中的和,为什么这样就不行呢?
而要把for循环中的语句换掉呢?
...全文
20 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tinymole 2002-05-08
  • 打赏
  • 举报
回复
收到
delphihero 2002-05-08
  • 打赏
  • 举报
回复
iterator 是指针类,要得是地址,你给他大小怎么能行
leasun 2002-05-08
  • 打赏
  • 举报
回复
就是啊,怎么能混淆iterator和size呢.
AixBall 2002-05-08
  • 打赏
  • 举报
回复
i是指向A中元素的迭代指针,它的值是一个地址,而A.size()是指A中元素的个数,他们之间根本就不搭嘎。
fangrk 2002-05-08
  • 打赏
  • 举报
回复
i是vector<int>的范型指针,A.size()返回A的容量,是一个int类型
晨星 2002-05-08
  • 打赏
  • 举报
回复
关注。
shornmao 2002-05-08
  • 打赏
  • 举报
回复
jyc_nj(老蔣) 说得好,数据类型不匹配。
tinymole 2002-05-08
  • 打赏
  • 举报
回复
我也想知道。

up...
jyc_nj 2002-05-08
  • 打赏
  • 举报
回复
vector::size()返回size_type
vector::begin()和vector::end()返回const_iterator.
是否问题在这?

walterzh 2002-05-08
  • 打赏
  • 举报
回复
我知道啊
但为什么那样就不行呢?
fangrk 2002-05-08
  • 打赏
  • 举报
回复
int p(const vector<int>&A){
int sum = 0;
vector<int>::const_iterator first,end;
first=A.begin();
end=A.end();
for(;first!=end; ++first)
sum+=*first;
return sum;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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