请教高人:这个for_each的用法哪里错了?
#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”推导 <未知> 参数
应该如何修改啊?