因此,我有一个名为WaterJug
的自定义对象,在全局set<WaterJug>
上调用函数时遇到错误:
这是在类定义之前定义的:set<WaterJug> memo;
在我班上的一种方法中:
for(std::vector<WaterJug>::iterator newJug = newJugs.begin(); newJug != newJugs.end(); ++newJug) {
const bool is_in = memo.find(newJug); //error here
if (is_in) {
}
}
错误是:
No matching member function for call to 'find'
我必须在自定义类中实现任何接口才能使set操作起作用吗?
最佳答案
您有几个错误。
错误的参数传递给memo.find
。
memo.find(newJug) // tpe of newJug is an iterator, not an object.
它必须是
memo.find(*newJug)
memo.find()
的返回值不是bool
。它是一个迭代器。代替const bool is_in = memo.find(newJug); //error here
if (is_in) {
采用:
if ( memo.find(*newJug) != memo.end() )
关于c++ - 设置操作不适用于自定义对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33307068/