[英]Invalid operands to binary expression (‘const Vector’ and ‘const Vector’)
[英]Invalid operands to binary expression ('RadioDevice' and 'const RadioDevice')
我严重困扰这个问题,我试图使用find()在列表中找到一个对象。 以下是代码:
std::vector<RadioDevice> radioDevices;
public:
void add(CartesianLocation location, std::list<RadioSignal<RadioDevice>> observedSignals){
for(RadioSignal<RadioDevice> radioSignal : observedSignals) {
if (std::find(radioDevices.begin(),
radioDevices.end(),
radioSignal.getRadioDevice()) != radioDevices.end()) {
radioDevices.push_back(radioSignal.getRadioDevice());
}
}
}
RadioSignal扩展了RadioDevice,这是一个纯粹的抽象类。 我if (*__first == __value_) in find()
时遇到错误
二进制表达式的无效操作数('RadioDevice'和'const RadioDevice')
因此,假设您将RadioDevice
类定义为:
class RadioDevice {
public:
virtual std::string getMacAddress();
virtual RadioDeviceType getType();
virtual double getFrequency();
virtual std::string getIdentifier();
virtual void setIdentifier(std::string identifier);
virtual int getTxPower();
};
您需要为RadioDevice
类定义operator==
。 你可以通过添加来做到这一点
bool operator==(const RadioDevice& rhs, const RadioDevice& lhs) {
return rhs.getIdentifier() == lhs.getIdentifier();
}
但是,假设两个RadioDevice
对象具有相同的标识符,则它们是相等的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.