この関数では、ベクトル キューで「頂点」を検索したいと思います。
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' 引数を渡すと、修飾子が破棄されます