利用适当的容器类实现电话簿类 PhoneBook,并给出main函数测试
时间: 2023-08-16 17:08:11 浏览: 108
好的,我可以帮您实现这个类。在这里,我将使用C++ STL中的map容器来实现PhoneBook类,map容器是一种关联式容器,它提供了一种将键映射到值的方法。
下面是PhoneBook类的实现,包括添加联系人、查找联系人和删除联系人的方法:
```c++
#include <iostream>
#include <map>
#include <string>
using namespace std;
class PhoneBook {
public:
void addContact(string name, string number) {
contacts[name] = number;
}
string getNumber(string name) {
if (contacts.find(name) == contacts.end()) {
return "Contact not found";
} else {
return contacts[name];
}
}
void removeContact(string name) {
contacts.erase(name);
}
private:
map<string, string> contacts;
};
```
在上面的代码中,我们使用map容器来存储联系人的名称和电话号码。addContact方法用于将新联系人添加到电话簿中,getNumber方法用于查找联系人的电话号码,removeContact方法用于删除联系人。
下面是一个简单的main函数用于测试PhoneBook类的实现:
```c++
int main() {
PhoneBook phoneBook;
phoneBook.addContact("Alice", "1234567890");
phoneBook.addContact("Bob", "9876543210");
cout << "Alice's number is " << phoneBook.getNumber("Alice") << endl;
cout << "Bob's number is " << phoneBook.getNumber("Bob") << endl;
cout << "Charlie's number is " << phoneBook.getNumber("Charlie") << endl;
phoneBook.removeContact("Bob");
cout << "Bob's number is " << phoneBook.getNumber("Bob") << endl;
return 0;
}
```
输出结果应该是:
```
Alice's number is 1234567890
Bob's number is 9876543210
Charlie's number is Contact not found
Bob's number is Contact not found
```
在上面的main函数中,我们首先创建一个PhoneBook对象,并向其添加两个联系人。然后,我们使用getNumber方法检索Alice和Bob的电话号码,并使用removeContact方法删除Bob。最后,我们再次使用getNumber方法检索Bob的电话号码,应该会返回“Contact not found”。
希望这个例子能够帮助您理解如何使用STL容器来实现一个简单的电话簿类。
阅读全文