在使用模板类和列表时,我遇到了解决错误的问题。这是代码。我得到的错误都在同一行,而且是语法错误,它说printList非法使用类型void而另一个错误是无法识别的模板声明/定义
#include <iostream>
#include <list>
#include <deque>
#include <functional>
#include <algorithm>
using namespace std;
template<class T>
void printList<T>(const list& lst, string s) {
cout << s << ": ";
for (typename list::const_iterator i = lst.begin(); i != lst.end(); i++)
cout << *i << " ";
cout << endl;
}
它不断向我提供错误void printList<T>
有人可以帮助我找出原因吗?
答案 0 :(得分:0)
声明该函数的正常方法是:
template<class T>
void printList(const list<T>& lst, string s)
您还需要更改
cout << s << endl;
到
cout << s.c_str() << endl;
或更优雅地
#include <string>
以及
list::const_iterator
到
list<T>::const_iterator
否则,您不会声明列表对象的模板类型。