模板类C ++,无法编写打印和删除链表

时间:2014-02-20 06:31:31

标签: c++ templates linked-list

我在双链表上做了一个涉及多个成员函数实现的项目。我在编写非类全局函数和另一个函数时遇到了一些麻烦。我已经完成了这个项目,它涉及大约30个成员函数,除了这几个东西。我的标题是一个单独的文件。

我遇到的第一个问题是编写非类全局打印功能。这是我需要写的功能。 (及其描述)

//print out all elements in list l by calling List<T>::print() function.
template <class T>
void operator<<(ostream & os, const List<T> & l){

}

这是我的清单&lt;我写的T&gt; :: print()函数,你应该调用上面的函数。 (及其描述)

//print all elements in the list, using character ofc as the deliminator between elements in the list.

template <class T>
void List<T>::print(ostream& os, char ofc = ' ') const {
    for (List<T>::const_iterator itr = begin(); itr != end(); ++itr){
        os << *itr << ofc;
    }
}

对于我需要帮助的第二个函数,它是“remove(const T&amp; val):从列表中删除值等于val的所有节点”。我写了它,但我只是想知道它是否有效或你对它的看法。因为我认为不会。

//delete all nodes with value equal to val from the list.
template<class T>
void List<T>::remove(const T & val){
    for (List<T>::const_iterator itr = begin(); itr != end(); ++itr){
        if (Node *p == itr.val)
        delete p;
    }
}

0 个答案:

没有答案