// @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";
}