我很困惑的錯誤:替換算法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')」 –