我有一個包含用戶名和密碼的向量。我試圖做一個「重置新密碼」功能,我首先在向量中查找用戶名是否存在用戶名, 然後接下來用戶會提示輸入新密碼,舊密碼將被替換爲新的那一個。使用std :: replace時,無效的操作數爲二進制表達式C++
但我遇到這個錯誤
Invalid operands to binary expression ('User' and 'const std::__1::basic_string<char>')
因爲這一行的。我的代碼
replace(userDetails.begin(), userDetails.end(), oldPassword, newPassword);
部分相關問題
string name;
cout << "Please enter a user name that the password will be reset \n";
cin >> name;
for (int i =0; i<userDetails.size(); i++) {
if (userDetails[i].getUserName() == name) {
string newPassword;
string oldPassword;
oldPassword = userDetails[i].getPassword();
cout << "Please enter a new password" << endl;
cin >> newPassword;
replace(userDetails.begin(), userDetails.end(), oldPassword, newPassword);
cout << userDetails[i].getPassword();
}
}
我不知道我應該怎麼做才能達到我想要的結果是什麼。請幫忙。謝謝
嘗試你的'* Password'變量重命名爲'foo'和'bar'。違規線路是否仍然像以前一樣替換相同的東西?看看'std :: replace'的實際文檔也可以提供幫助。 –