有人能告诉我这段代码哪里错了?

DOLLAR_Z 2012-02-17 02:43:47
int main()
{
int sum=0,tamp=0;
string word;
vector<string> str;
while(cin>>word)
str.push_back(word);
vector<string>::iterator iter=str.begin(),ter=str.begin();
for(;iter!=str.end();)
{
if(*iter==*++iter)
++tamp;
else
if(tamp>sum)
sum=tamp;
ter=iter;
}
if(sum!=0)
cout<<"The largest number is "<<sum<<endl;
else
cout<<"Did not finds any words."<<endl;
}


我用这段代码做C++ PRIMER 习题6.12 为啥运行的时候老是报错??
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DOLLAR_Z 2012-02-17
  • 打赏
  • 举报
回复
SOGA!!!!!!!!!!!!!
缘来是梦 2012-02-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qixing1115 的回复:]
引用 4 楼 ivers0n 的回复:
for(;iter!=str.end();)
if(*iter==*++iter)

最后一个指针 越界解引用

++
[/Quote]
+++
elegant87 2012-02-17
  • 打赏
  • 举报
回复

for(;iter!=str.end();)
{
if(*iter==*++iter) //当iter=str.end()-1时,++iter就是str.end(),此时越界了
++tamp;
else
if(tamp>sum)
sum=tamp;
ter=iter;
}
qixing1115 2012-02-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ivers0n 的回复:]
for(;iter!=str.end();)
if(*iter==*++iter)

最后一个指针 越界解引用
[/Quote]
++
qixing1115 2012-02-17
  • 打赏
  • 举报
回复
#include <string>
IVERS0N 2012-02-17
  • 打赏
  • 举报
回复
for(;iter!=str.end();)
if(*iter==*++iter)

最后一个指针 越界解引用

vanxeger 2012-02-17
  • 打赏
  • 举报
回复
错误呢!?
面包大师 2012-02-17
  • 打赏
  • 举报
回复
楼主,报什么错?
sagegz 2012-02-17
  • 打赏
  • 举报
回复
不知道你要做什么...

int main()
{
int sum=0,tamp=0;
string word;
vector<string> str;
while(cin>>word)
str.push_back(word);
vector<string>::iterator iter=str.begin(),ter=str.begin();
for(;iter!=str.end();iter++)
{
if(*iter==*iter)
++tamp;
ter=iter;
}
if(tamp>sum)
sum=tamp;
if(sum!=0)
cout<<"The largest number is "<<sum<<endl;
else
cout<<"Did not finds any words."<<endl;
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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