【发布时间】:2013-11-02 15:24:11
【问题描述】:
在这个函数中,我想在向量队列中搜索“顶点”。
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]'
传递 `bool VertexPriority::operator==(const VertexPriority&)' 的
const VertexPriority' asthis' 参数会丢弃限定符
【问题讨论】:
-
no match for 'operator=='你实现在VertexPriority> -
您是否在边列表中找到顶点?!
-
不抱歉,我写错了这个问题的文字,现在我会编辑
-
刚才实现了算子重载,编辑了问题
标签: c++ vector compiler-errors iteration std