// @topic T061120 std::map and auto keyword // @brief phone book demo app #include <iostream> #include <cstdlib> #include <string> #include <map> void phone_book_content_display(std::map< std::string, int > const& phone_map); int main() { std::map< std::string, int > phone_map; for (;;) { std::string name; std::cout << "\nEnter name or x to continue: "; std::cin >> name; if ( name == "x" ) break; int phone; std::cout << "\nPhone # (no spaces or punctuation): "; std::cin >> phone; // store name and phone in the map: phone_map[ name ] = phone; }//for phone_book_content_display( phone_map ); for (;;) { std::string name; std::cout << "\nEnter a name to lookup or x to exit: "; std::cin >> name; if ( name == "x" ) break; if ( phone_map.count( name ) ) { std::cout << "the phone is: " << phone_map[ name ] << "\n"; std::cout << "would you like to remove this entry?\n"; char yn; std::cin >> yn; if ( yn == 'y' || yn == 'Y' ) { phone_map.erase( name ); phone_book_content_display( phone_map ); } } else { std::cout << "no such entry exists\n"; } }//for system("pause"); return 0; } void phone_book_content_display(std::map< std::string, int > const& phone_map) { std::cout << "\n---------------------------------------\n"; for ( auto it = phone_map.begin(); it != phone_map.end(); ++it ) { std::cout << it->first << ": " << it->second << "\n"; } std::cout << "\n---------------------------------------\n"; }