C++ 改善Hackerrank[因超时而终止]

C++ 改善Hackerrank[因超时而终止],c++,performance,c++11,timeout,termination,C++,Performance,C++11,Timeout,Termination,我已经根据下面提供给我的信息创建了代码 “第一行有一个整数N,表示通讯录中的条目数。每个条目由两行组成:姓名(名字或姓氏)和相应的电话号码 之后,将有一些查询。每个查询将包含一个朋友的姓名。请阅读这些查询,直到文件结束。“ 此外,如果未找到名称,则应打印“未找到” 问题出在Hackerrank.com上,我无法提交,因为程序“因超时而终止” 有人能帮我改进这个代码,让它运行得更快吗?!我几乎不知道如何让它运行,所以我对如何改进它完全没有想法 #include <cmath> #inc

我已经根据下面提供给我的信息创建了代码

“第一行有一个整数N,表示通讯录中的条目数。每个条目由两行组成:姓名(名字或姓氏)和相应的电话号码

之后,将有一些查询。每个查询将包含一个朋友的姓名。请阅读这些查询,直到文件结束。“

此外,如果未找到名称,则应打印“未找到”

问题出在Hackerrank.com上,我无法提交,因为程序“因超时而终止”

有人能帮我改进这个代码,让它运行得更快吗?!我几乎不知道如何让它运行,所以我对如何改进它完全没有想法

#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;
}

首先阅读和的文档,看看它们是否……鼓舞人心。我使用的不是类号和向量,而是地图。不幸的是,出现了同样的错误。请用地图显示代码好吗?