[英]iterator find method for custom class vector
我想使用迭代器的find方法來檢查是否已經在向量中定義了我定義的類的實例。 我已經為該類重載了==運算符。 但是,我無法編譯它。
我在這里想念什么?
謝謝你提前。
這是代碼片段:
vector<ContourEdgeIndexes>::iterator it = find(contourEdges.begin(),contourEdges.end(),contourEdgeCand);
if(it != contourEdges.end()) {
contourEdges.erase(it);
}
compiler gives this error:
error: no matching function for call to ‘find(std::vector<ContourEdgeIndexes>::iterator, std::vector<ContourEdgeIndexes>::iterator, ContourEdgeIndexes&)’
edit:
and here is the overloaded == operator:
bool operator == (ContourEdgeIndexes& rhs) {
if((this->first == rhs.first) && (this->second == rhs.second))
return true;
else
return false;
}
如果操作員定義為member,則應該接受對ContourEdgeIndexes
常量引用。 另外,運算符本身應該是const。
bool operator == (const ContourEdgeIndexes& rhs) const {
return ((this->first == rhs.first) && (this->second == rhs.second));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.