heap
-
hy,
ich habe in einem algorithmus den stl heap verwendet aus header datei <algorithm>so wird mein heap erstellt, OPEN ist ein Vektor von CPathNode
make_heap( OPEN.begin(), OPEN.end());
Ich definiere danach den Operator < und > wie folgt
bool operator<(const CPathNode &a, const CPathNode &b)
{
return a.f < b.f;
}ich bekoe dann jedoch die Felermeldung:
instantiated from
void std::\_\_pop\_heap(\_RandomAccessIterator, \_RandomAccessIterator, \_RandomAccessIterator, \_Tp) [with \_RandomAccessIterator = \_\_gnu\_cxx::\_\_normal\_iterator<CPathNode*, std::vector<CPathNode, std::allocator<CPathNode> > >, \_Tp = CPathNode]' /usr/include/c++/3.3.4/bits/stl\_heap.h:175: instantiated fromvoid std::pop_heap(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<CPathNode*, std::vector<CPathNode, std::allocator<CPathNode> > >]'und wiess garnix damit anzufangen, koennt ihr mir bitte helfen,
danke
geckoo
-
geckoo schrieb:
instantiated from
void std::\_\_pop\_heap(\_RandomAccessIterator, \_RandomAccessIterator, \_RandomAccessIterator, \_Tp) [with \_RandomAccessIterator = \_\_gnu\_cxx::\_\_normal\_iterator<CPathNode*, std::vector<CPathNode, std::allocator<CPathNode> > >, \_Tp = CPathNode]' /usr/include/c++/3.3.4/bits/stl\_heap.h:175: instantiated fromvoid std::pop_heap(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<CPathNode*, std::vector<CPathNode, std::allocator<CPathNode> > >]'das sind nicht die fehler, sondern nur, wer die funktion aufgerufenb hat, die nachher den fehler erzeugte.
was haste für meldungen außer dennen mit "instantiated from" drin?
-
sorry, hier ist der error der ausgegeben wird
/usr/include/c++/3.3.4/bits/stl_heap.h:141: error: no match for 'operator<' in
'(&__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator+(typename
std::iterator_traits<_Iterator>::difference_type&) const [with _Iterator =
CPathNode*, _Container = std::vector<CPathNode, std::allocator<CPathNode>]((&__secondChild)))->__gnu_cxx::__normal_iterator<_Iterator,
_Container>::operator* [with _Iterator = CPathNode*, _Container =
std::vector<CPathNode, std::allocator<CPathNode> >]() <
(&__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator+(typename
std::iterator_traits<_Iterator>::difference_type&) const [with _Iterator =
CPathNode*, _Container = std::vector<CPathNode, std::allocator<CPathNode>
]((&(__secondChild - 1))))->__gnu_cxx::__normal_iterator<_Iterator,
_Container>::operator* [with _Iterator = CPathNode*, _Container =
std::vector<CPathNode, std::allocator<CPathNode> >]()'