请教高人:这个for_each的用法哪里错了?

yasaka 2010-02-28 12:57:39
#include <algorithm>
#include <functional>
#include <iostream>
using namespace std;
char seqchars()
{
static char c = 'a';
return c++;
}
void uppercase(char& c) {c -= 32;}
int main()
{
const size_t N = 10;
char a[N], *i;
generate_n(a, N, seqchars);
for(i=a; i<a+N; i++) cout<<*i<<'\t';
cout<<endl;
for_each(a+N/2, a+N, uppercase);
for(i=a; i<a+N; i++) cout<<*i<<'\t';
cout<<endl;
int an[N], *j;
int *p = transform(a, a+N/2, a+N/2, an, minus<char>());
for(j=an; j<an+N; j++) cout<<*j<<'\t';
cout<<endl;
replace_if(a, a + N, isupper, '*');
for(i=a; i<a+N; i++) cout<<*i<<'\t';
cout<<endl;
return 0;
}
编译错误,提示
错误 1 error C2914: “std::for_each”: 因为函数参数不明确,所以无法推导出 模板 参数
错误 2 error C2784: “_Fn1 std::for_each(_InIt,_InIt,_Fn1)”: 无法从“重载函数类型”为“_InIt”推导 <未知> 参数
应该如何修改啊?
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenxiaolong1976 2010-05-14
  • 打赏
  • 举报
回复
类型不一至,返回值应该为bool
yasaka 2010-02-28
  • 打赏
  • 举报
回复
法克鱿,居然是这个原因,害得我调试了一个上午……
感谢指点,马上给分!
stardust20 2010-02-28
  • 打赏
  • 举报
回复
void uppercase(char& c) {c -= 32;}//这个函数名改下。。。uppercase这个函数名已经存在了
for_each(a+N/2, a+N, uppercase); //这边也相应的改下。。

64,647

社区成员

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

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