gpt4 book ai didi

c++ - 使用 vector C++进行二进制搜索

转载 作者:行者123 更新时间:2023-12-02 10:27:39 24 4
gpt4 key购买 nike

我有一个结构,其中数据定义为:

typedef struct contacts 
{
string name; //{jhonathan , anderson , felicia}
string nickName; //{jhonny , andy , felic}
string phoneNumber; // {13453514 ,148039 , 328490}
string carrier; // {atandt , coolmobiles , atandt }
string address; // {1bcd , gfhs ,jhtd }

} contactDetails;

vector <contactDetails> proContactFile;
在这里我想对 name进行二进制搜索。如果搜索到的姓名可用,那么我想显示该名称的相关联系信息( nickname,phone number ,carrier ,address)。我该怎么做?

最佳答案

auto cmpFn = [](const contacts &c1, const contacts &c2) {return c1.name < c2.name;};

// 1. vector must be sorted
std::sort(proContactFile.begin(), proContactFile.end(), cmpFn);

// 2. what to find
contacts findme; findme.name = "cat";

// 3. find
auto it = std::lower_bound(proContactFile.begin(), proContactFile.end(), findme, cmpFn);
bool found = it != proContactFile.end() && it->name == findme.name;

关于c++ - 使用 vector C++进行二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63614161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com