C++数据结构实战:两种方式实现电话号码查询
C++数据结构实战:两种方式实现电话号码查询
假设我们有一个顾客电话号码表,需要实现根据姓名查询电话号码的功能。本文将介绍两种C++数据结构来实现这个功能,并提供完整的代码示例和函数声明。
顾客电话号码表:
| 姓名 | 电话号码 || -------- | -------- || 吴承志 | 88010112 || 李淑丽 | 88010113 || 刘芳会 | 88010119 || 张友 | 88010124 |
方式一:使用结构体
我们可以使用结构体来表示每个顾客的信息,包括姓名和电话号码。然后将所有顾客信息存储在一个结构体数组中。cpp#include
struct Customer{ std::string name; std::string phoneNumber;};
int main(){ const int SIZE = 4; Customer customerList[SIZE] = { {'吴承志', '88010112'}, {'李淑丽', '88010113'}, {'刘芳会', '88010119'}, {'张友', '88010124'} };
// 根据姓名查询电话号码的函数声明 std::string findPhoneNumberByName(const std::string& name, const Customer customerList[], int size);
std::string nameToSearch = '吴承志'; std::string phoneNumber = findPhoneNumberByName(nameToSearch, customerList, SIZE); if (phoneNumber.empty()) { std::cout << '找不到姓名为 ' << nameToSearch << ' 的电话号码。' << std::endl; } else { std::cout << '姓名为 ' << nameToSearch << ' 的电话号码是:' << phoneNumber << std::endl; }
return 0;}
std::string findPhoneNumberByName(const std::string& name, const Customer customerList[], int size){ for (int i = 0; i < size; i++) { if (customerList[i].name == name) { return customerList[i].phoneNumber; } } return ''; // 找不到对应姓名的电话号码}
方式二:使用两个数组
另一种方式是使用两个数组,一个存储姓名,另一个存储对应的电话号码。cpp#include
const int SIZE = 4;
std::string names[SIZE] = {'吴承志', '李淑丽', '刘芳会', '张友'};std::string phoneNumbers[SIZE] = {'88010112', '88010113', '88010119', '88010124'};
std::string findPhoneNumberByName(const std::string& name, const std::string names[], const std::string phoneNumbers[], int size){ for (int i = 0; i < size; i++) { if (names[i] == name) { return phoneNumbers[i]; } } return ''; // 找不到对应姓名的电话号码}
int main(){ std::string nameToSearch = '吴承志'; std::string phoneNumber = findPhoneNumberByName(nameToSearch, names, phoneNumbers, SIZE); if (phoneNumber.empty()) { std::cout << '找不到姓名为 ' << nameToSearch << ' 的电话号码。' << std::endl; } else { std::cout << '姓名为 ' << nameToSearch << ' 的电话号码是:' << phoneNumber << std::endl; }
return 0;}
总结
以上两种方式都提供了根据姓名查询电话号码的函数 findPhoneNumberByName,该函数接受一个姓名参数,然后在给定的数据元素数组中进行遍历查找,返回对应的电话号码。如果找不到对应姓名的电话号码,则返回一个空字符串。
选择哪种方式取决于具体的需求和编程习惯。使用结构体可以将相关数据封装在一起,更易于维护;而使用数组则更加简洁直观。
原文地址: http://www.cveoy.top/t/topic/KVZ 著作权归作者所有。请勿转载和采集!