STL迭代器进入构造函数

cit*_*ane 1 c++ constructor iterator stl

我想知道如何编写一个接受任何STL输入迭代器的自定义类(在本例中是一个链表)的构造函数.我已经创建了一个与我的List类绑定的自定义Iterator类.

这很好用.

template <typename T>  
List<T>::List(Iterator beg, Iterator end) : first_(0) {  
    while (beg != end)  
        insertLast(*beg++);
}
Run Code Online (Sandbox Code Playgroud)

我已经设法创建一个接收这样的列表迭代器的构造函数.

List<T>::List(typename list<T>::iterator s, typename list<T>::iterator e) :
    first_(0) {  
    while (s != e)   
        insertLast(*s++);
Run Code Online (Sandbox Code Playgroud)

我的STL-fu对于如何将其概括为接受任何输入迭代器并没有真正意义上的
任何帮助吗?

谢谢!

Mar*_*som 5

我认为这很简单:

template <typename T, typename Iterator>  
List <T>::List(Iterator beg, Iterator end) : first_(0) {  
    while (beg != end)  
        insertLast(*beg++);
}
Run Code Online (Sandbox Code Playgroud)