我在双链表上做了一个涉及多个成员函数实现的项目。我在编写非类全局函数和另一个函数时遇到了一些麻烦。我已经完成了这个项目,它涉及大约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;
}
}