在我想問這個問題之前,我已經查看了一些關於stackoverflow的線程(因爲這裏有一對夫婦),但即使通過實現一些解決方案,它似乎沒有幫助我的問題。這或我做錯了。錯誤:'運算符<<'不匹配C++
不管怎麼說,因爲它去,我得到的錯誤是:
error: no match for 'operator<<' in 'os << itr'
我的課是:
template <typename T>
class btree {
public:
btree(size_t maxNodeElems);
~btree() {}
struct node { // <- this is just a declaration of a private inner-class
list <T> elements;
node *lvl;
};
private:
size_t maxNodeElems;
node* root; // <- this is the actual private member
};
template <typename T>
btree<T>::btree(size_t maxNodeElems) {
if (maxNodeElems > 0) maxNodeElems = maxNodeElems;
root = new node;
root->lvl = new node[maxNodeElems+1];
}
template <typename T>
pair <typename btree<T>::iterator, bool> btree <T>::insert (const T& elem) {
root->elements.push_back(elem);
root->elements.sort();
std::pair <typename btree<T>::iterator, bool> e;
return e;
}
template <typename T>
std::ostream& operator<<(std::ostream& os, const btree<T>& tree) {
class list <T>::iterator itr = tree.root->elements.begin();
for (; itr != tree.root->elements.end(); ++itr) os << itr;
return os;
}
我很清楚,我插不返回任何內容,但我避風港沒有完成實現該功能,我只是試圖測試如何從目前的列表中獲取元素。有人能告訴我我做錯了什麼嗎?
您的意思是'OS << * ITR;'呢? – Flexo