我正在尝试使用无序地图在c ++中制作电话簿。代码中没有错误,它在cpp.sh中完美执行但在Visual Studio 2017中没有任何人可以帮助我吗?我错过了任何图书馆或任何声明,或者我应该尝试其他任何事情。 这是我的代码:
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int a;
class phoneBook {
public:
int y;
string name;
long int number;
unordered_map <string, long int>::iterator it;
unordered_map<string, long int> m;
void enter()
{
cout << "Enter Name: ";
cin.ignore();
getline(cin, name);
cout << "Enter Phone Number: ";
cin >> number;
m.insert(make_pair(name, number));
return;
}
void search()
{
cout << "Enter Name: ";
cin.ignore();
getline(cin, name);
it = m.find(name);
if (it != m.end())
{
cout << "Name:- " << name << endl;
cout << "Number:- " << it->second << endl;
}
else {
cout << "Not Found";
}
cout << endl;
return;
}
};
int main()
{
phoneBook p;
while (a != 0)
{
cout << "Enter 1 to add phone number" << endl;
cout << "Enter 2 to search for phone number" << endl;
cout << "Enter 0 to exit" << endl;
cin >> a;
if (a == 1)
{
p.enter();
}
if (a == 0 || a == 0)
{
break;
}
else if (a == 2)
{
p.search();
}
}
return 0;
system("pause");
}
答案 0 :(得分:1)
a
是全局变量,其默认值为0,因此当main函数在while循环中启动条件时a != 0
返回false并且main
结束工作。
使用0以外的值初始化a
变量。