看板 EE_DSnP 關於我們 聯絡資訊
這是我的operator overload == bool operator == (const iterator& i) const { if(i._node == (*this)) return true; else return false; } 這是我的erase部分 bool erase(const T&x) { for(size_t i=0; i<_size; i++) { iterator it; it++; if(it._node == x) { iterator it(T* ptr); return true; } } return false; } compile後出現以下error In file included from adtTest.h:42, from adtTest.cpp:10: ../../include/array.h: In member function ‘bool Array<T>::erase(const T&) [with T = AdtTestObj]’: adtTest.h:90: instantiated from here ../../include/array.h:149: error: no match for ‘operator==’ in ‘it.Array<AdtTestObj>::iterator::_node == x’ make[1]: *** [adtTest.o] Error 1 make: *** [main] Error 2 不知道是為何 請大家幫忙一下 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.160.233.128
djshen:it._node跟x的型態? 12/06 21:11
wmin0:_node是T* x是T 12/06 21:13
timrau:T*和iterator沒辦法比較啊。也許該 12/06 21:38
timrau:if(i._node == _node)之類的 12/06 21:39
t27935912:感謝!!!! 12/06 22:12