带有列表

时间:2016-12-03 00:29:16

标签: c++

在使用模板类和列表时,我遇到了解决错误的问题。这是代码。我得到的错误都在同一行,而且是语法错误,它说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>有人可以帮助我找出原因吗?

1 个答案:

答案 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

否则,您不会声明列表对象的模板类型。