Существует простая телефонная книга с содержанием, приведенным в векторе. Программа должна попросить пользователя ввести имя и представить номер, если он существует, и предупредить в противном случае. И это должно оставить телефонную книгу с выходом. Я получаю сообщение об ошибке для части итератора. Как я могу это исправить?
Я создал итератор для этой цели: vector <pair < string , string >>::iterator it;
однако я получаю сообщение об ошибке: invalid operands to binary expression ('std::__1::pair<std::__1::basic_string<char>, std::__1::basic_string<char> >' and 'const std::__1::basic_string<char>')
int main()
{
//phone book
vector <pair < string , string >>
vec { make_pair ("Homer", "1111"),
make_pair ("Marge", "2222"),
make_pair ("Lisa", "3333"),
make_pair ("Magy", "4444"),
make_pair ("Bart", "5555")};
std::string nameEntered;
vector <pair < string , string >>::iterator it; //create iterator
//unless Exit entered;
while(nameEntered != "Exit"){
//take input from user
cout<<"Enter name (or Exit ): ";
std::cin >> nameEntered;
it = std::find(vec.begin(), vec.end(), nameEntered);
//if given input exists, returns the corresponding phone number
if(it != vec.end()){
std::cout << "Phone number is: " << (*it).second << endl; //displays the phone number for given input name
}
else{
std::cout << "No such phone number!"; //warns the user
}
}
}
Я получаю сообщение об ошибке: invalid operands to binary expression ('std::__1::pair<std::__1::basic_string<char>, std::__1::basic_string<char> >' and 'const std::__1::basic_string<char>')
. Ожидаемый результат - номер телефона с заданным именем ввода.