我很困惑的错误:替换算法C++无效操作数的二进制表示
error:invalid operands to binary expression ('Record' and 'const Record')
我无法理解为什么我的代码:
replace(phoneBook.begin(),phoneBook.end(),old_r,new_r)
将得到错误。 const Record是什么意思?
using namespace std;
class Record{
public:
string name;
int number;
};
int main(){
vector <Record> phoneBook;
string command;
while (cin >> command) {
if(command == "Update"){ // Handle the Update command
Record new_r;
Record old_r;
int number;
cin>>new_r.name>>new_r.number;
vector<Record>::iterator itr;
for(itr=phoneBook.begin();itr!=phoneBook.end();itr++){
if((*itr).name==new_r.name){
old_r.number=(*itr).number;
old_r.name=(*itr).name;
}
}
replace(phoneBook.begin(),phoneBook.end(),old_r, new_r);
}
}
}
代码缺少包括,,,实际上再现什么。然后你会看到,实际的错误是:“error:'operator =='不匹配(操作数类型是'Record'和'const Record')” –