一个C++的迭代器程序,求纠错。。。

程序如下:#include<iostream>usingnamespacestd;intcount();intmain(){inttimes;strings="Maryh... 程序如下:
#include<iostream>
using namespace std;
int count();int main()
{
int times;
string s = "Mary had a little lamb.";

times = count(s, 'a'); cout << times <<endl;
return 0;
}

int count(const string &s, char c){
int n = 0;
string::const_iterator i = find(s.begin(), s.end(), c);
while(i != s.end())
{
n++;
i = find(i + 1, s.end(), c);
}
return n;
}
编译器提示“ string::const_iterator i = find(s.begin(), s.end(), c);“这句有错,该怎么改??还有那个const_iterator怎么用???求大神指导。。
谢谢啦!!
展开
 我来答
百度网友b0bba24
2013-03-23 · TA获得超过887个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:465万
展开全部
你要加个头文件#include<algorithm>,因为你用到了find这个算法函数
还有你的count的声明错了,你声明的没有参数,而后面定义有参数,声明部分改为
int count(const string &s, char c);
其他的都不会错了
你的const_iterator 用法是对的,当对象为const对象的时候用这个,还有不想改变迭代器所指的内容的时候也用
追问
嗯,这次不报错了,谢谢啦。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式