C++ 改善Hackerrank[因超时而终止]
我已经根据下面提供给我的信息创建了代码 “第一行有一个整数N,表示通讯录中的条目数。每个条目由两行组成:姓名(名字或姓氏)和相应的电话号码 之后,将有一些查询。每个查询将包含一个朋友的姓名。请阅读这些查询,直到文件结束。“ 此外,如果未找到名称,则应打印“未找到” 问题出在Hackerrank.com上,我无法提交,因为程序“因超时而终止” 有人能帮我改进这个代码,让它运行得更快吗?!我几乎不知道如何让它运行,所以我对如何改进它完全没有想法C++ 改善Hackerrank[因超时而终止],c++,performance,c++11,timeout,termination,C++,Performance,C++11,Timeout,Termination,我已经根据下面提供给我的信息创建了代码 “第一行有一个整数N,表示通讯录中的条目数。每个条目由两行组成:姓名(名字或姓氏)和相应的电话号码 之后,将有一些查询。每个查询将包含一个朋友的姓名。请阅读这些查询,直到文件结束。“ 此外,如果未找到名称,则应打印“未找到” 问题出在Hackerrank.com上,我无法提交,因为程序“因超时而终止” 有人能帮我改进这个代码,让它运行得更快吗?!我几乎不知道如何让它运行,所以我对如何改进它完全没有想法 #include <cmath> #inc
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
class Number{
public:
string name;
string lname;
long number;
};
class PhoneBook{
public:
void findNumber(){
string tempName;
while (cin >> tempName){
int nf=0;
for(int i=0; i < phoneNumbers.size(); i++){
if (tempName == phoneNumbers[i].name){
cout << phoneNumbers[i].name << "=" << phoneNumbers[i].number << endl;
}
else {
nf +=1;
}
}
if (nf == phoneNumbers.size()){cout << "Not found" << endl;}
}
}
void addNumber(int entries){
for(int numbers = 0; numbers < entries; numbers++){
Number newContact;
long num;
cin >> newContact.name;
cin >> num;
if (!cin){
cin.clear();
cin >> newContact.lname >> newContact.number;
}
else{
newContact.number = num;
}
phoneNumbers.push_back(newContact);
}
}
private:
string PBname;
vector<Number> phoneNumbers;
};
int main(){
int entries;
cin >> entries;
PhoneBook myFriends;
myFriends.addNumber(entries);
myFriends.findNumber();
return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
班号{
公众:
字符串名;
字符串名称;
长数;
};
班级电话簿{
公众:
void findNumber(){
字符串tempName;
while(cin>>tempName){
int nf=0;
对于(int i=0;i>newContact.number;
}
否则{
newContact.number=num;
}
电话号码。推回(新联系人);
}
}
私人:
字符串名称;
向量电话号码;
};
int main(){
整数分录;
cin>>条目;
电话簿我的朋友;
myFriends.addNumber(条目);
myFriends.findNumber();
返回0;
}
首先阅读和的文档,看看它们是否……鼓舞人心。我使用的不是类号和向量,而是地图。不幸的是,出现了同样的错误。请用地图显示代码好吗?