我已經得到這個錯誤,並匹配功能我無法弄清楚如何解決它:沒有呼叫
btree.tem:98: instantiated from 'std::pair<typename btree<T>::iterator, bool> btree<T>::insert(const T&) [with T = char]'
test.cpp:13: instantiated from here
btree.tem:37: error: no matching function for call to 'btree<char>::addElem(std::_List_iterator<node<char>*>&, node<char>*&)'
btree.h:178: note: candidates are: void btree<T>::addElem(std::_List_iterator<node<T>*>&, node<T>&) [with T = char]
btree.tem:98: instantiated from 'std::pair<typename btree<T>::iterator, bool> btree<T>::insert(const T&) [with T = char]'
test.cpp:13: instantiated from here
btree.tem:48: error: no matching function for call to 'btree<char>::addElem(std::_List_iterator<node<char>*>&, node<char>*&)'
裏面我的頭文件我有這樣的setter函數:
void addElem (std::_List_iterator<node<T>*>& itr, node <T>& n) {
neighbours.insert(itr, n);
}
我不知道它有什麼問題。錯誤似乎發生時,我會這樣稱呼它:
class list < node<T>* >::iterator itr = bt->level().begin();
node <T>*n = new node<T>(elem, bt->max());
bt->addElem(itr, n);
問題是什麼?
讓你的生活更輕鬆一點,並使用typedefs。你會更喜歡這樣做。除此之外,請檢查您的代碼。某處出現類型不匹配的情況。看看函數需要什麼,並看看你的函數調用返回。它們是一致的嗎?例如,std :: vector與std :: vector 的類型不同。 –
你爲什麼使用'std :: _ List_iterator'?這是一個內部實現細節。 –
@ K-ballo我正在嘗試它,因爲我不知道如何將迭代器傳遞到'addElem'函數中 – SNpn