C++ STL泛型算法改错

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:04:45
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template <typename T,int VAL>
T addValue(T const& x)
{
return x+VAL
}

void main()
{

vector<int> Numbers(8),a1(8) ;

vector<int> ::iterator start, end, it,start1;

start = Numbers.begin() ;
start1 = a1.begin() ;
end = Numbers.end() ;

transform(Numbers.begin(), Numbers.end(), a1.begin(), addValue<int,5>);

cout << "Numbers { " ;
for(it = start; it != end; it++)
cout << *it << " " ;
cout << " }\n" << endl ;

cin.get();
cin.get();
}
有个错误..我用的是VS2005

d:\backup\我的文档\visual studio 2005\projects\小开历陷记2\小开历陷记2\小开厉险记2.cpp(10) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1> d:\

从句法上说(编译错误)楼上说的不错,只少了分号。
但运行出来的结果没有达到期待的结果
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template <typename T,int VAL>
T addValue(T const& x)
{
return x+VAL;
}

int main()
{

vector<int> Numbers, a1(8) ;
for (int i = 0; i != 8; ++i)
Numbers.push_back(i);

vector<int> ::iterator start, end, it,start1;

start = Numbers.begin() ;
start1 = a1.begin() ;
end = Numbers.end() ;

transform(Numbers.begin(), Numbers.end(), a1.begin(), addValue<int,5>);

cout << "Numbers { " ;
for(it = a1.begin(); it != a1.end(); ++it)
cout << *it << " " ;
cout << " }\n" << endl ;
}

这样transform才有用处啊
还有cin.get();干什么,后面又没有代码了

return x+VAL 后面少了;
至于(23)行的错误,等上面那个改好了再说