STL迭代器到构造函数中
问题描述:
我想知道如何为接受任何STL输入迭代器的自定义类(在这种情况下是链表)编写构造函数。我已经创建了一个与我的List类绑定的自定义Iterator类。STL迭代器到构造函数中
这工作正常。
template <typename T>
List<T>::List(Iterator beg, Iterator end) : first_(0) {
while (beg != end)
insertLast(*beg++);
}
我已经设法创建一个构造函数来接收像这样的列表迭代器。
List<T>::List(typename list<T>::iterator s, typename list<T>::iterator e) :
first_(0) {
while (s != e)
insertLast(*s++);
我STL-FU是不是真的达到上如何去推广这个接受任何输入迭代
任何帮助那里扼杀?
谢谢!
答
我认为它是如此简单:
template <typename T, typename Iterator>
List <T>::List(Iterator beg, Iterator end) : first_(0) {
while (beg != end)
insertLast(*beg++);
}
答
这可能是一个简单的模板构造函数。
template <class T>
class List
{
public:
template <class Iter>
List(Iter from, Iter to);
...
};
template <class T>
template <class Iter>
List<T>::List(Iter from, Iter to) {...}
非常感谢!解决了。 – citizencane 2010-10-05 17:18:22