1

この関数では、ベクトル キューで「頂点」を検索したいと思います。

bool PriorityQueue::contains(VertexPriority vertex) const {
     return (std::find(queue.begin(), queue.end(), vertex) != queue.end());
}

ベクトル キューは、次のオブジェクトのインスタンスです。

std::vector<VertexPriority> queue;

そして、私の演算子のオーバーロードはこれです:

bool operator==(const VertexPriority& v){ return (v.vertex == vertex); }

このエラーを解決するにはどうすればよいですか?

発生したエラーは次のものであり、すべてのエラーの最初に次のパスがあります。

C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algo.h

関数 `_RandomAccessIterator std::find(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator > >, _Tp = VertexPriority]':

`_InputIterator std::find(_InputIterator, _InputIterator, const _Tp&) [with _InputIterator = __gnu_cxx::__normal_iterator > >, _Tp = VertexPriority]' からインスタンス化

const VertexPriority' as`bool VertexPriority::operator==(const VertexPriority&)' の this' 引数を渡すと、修飾子が破棄されます

4

1 に答える 1