STL新手问一下函数模板link出错的问题?非常谢谢~~
非常感谢~~
template<class T>
void printFn(T i)
{
cout<<i<<endl;
}
for_each(vec2.begin(),vec2.end(),printFn<char>);
我可不可以在for_each中用printFn<char>作为第三个参数??
编译时,产生link出错,报错信息如下:
Linking...
InitVector.obj : error LNK2001: unresolved external symbol "void __cdecl printFn(char)" (?printFn@@YAXD@Z)
Debug/InitVector.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
-----------------------
完整源代码如下:
//程序:初始化演示
//目的:为了说明STL中的向量是怎样初始化的。
#include <cstring> // <cstring>和<string.h>相同
#include <vector>
#include <iostream.h> //cout
#include <algorithm> // for_each
using namespace std;
int ar[10] = { 12, 45, 234, 64, 12, 35, 63, 23, 12, 55 };
char* str = "Hello World";
template<class T>
void printFn(T i)
{
cout<<i<<endl;
}
int main(int argc, char* argv[])
{
vector <int> vec1(ar, ar+10);
vector <char> vec2(str, str+strlen(str));
//for_each(vec1.begin(),vec1.end(),printFn<int>);
for_each(vec2.begin(),vec2.end(),printFn<char>);
// for(vector<int>::iterator it1=vec1.begin();it1!=vec1.end();it1++)
// cout<<*it1<<endl;
return 0;
}