使用vector存储联系人信息可动态管理数据,通过结构体封装姓名、电话等字段,实现添加、显示、查找、删除功能,代码简洁且易扩展,适合中小型通讯录程序开发。

用C++开发一个通讯录程序,使用
vector容器来存储联系人信息是一种常见且高效的做法。它能动态管理联系人数量,避免固定数组的大小限制。下面是一个结构清晰、功能实用的通讯录程序实现思路和代码示例。
联系人结构设计
每个联系人包含基本信息,如姓名、电话、性别、年龄、地址等。使用
struct来封装这些数据。
struct Person {
string name;
string phone;
string sex;
int age;
string address;
Person(string n, string p, string s, int a, string addr)
: name(n), phone(p), sex(s), age(a), address(addr) {}
};
使用vector存储联系人
vector作为主存储容器,支持动态增删查改。
vectorcontacts;
常用操作包括:
立即学习“C++免费学习笔记(深入)”;
-
添加联系人:使用
push_back()
插入新对象 - 遍历联系人:通过下标或迭代器访问
-
删除联系人:根据索引或姓名查找后用
erase()
移除 - 查找联系人:遍历匹配姓名或电话
核心功能实现示例
以下是几个关键功能的简要实现:
添加联系人
void addPerson(vector& contacts) { string name, phone, sex, address; int age; cout << "姓名: "; cin >> name; cout << "电话: "; cin >> phone; cout << "性别: "; cin >> sex; cout << "年龄: "; cin >> age; cout << "地址: "; cin >> address; contacts.push_back(Person(name, phone, sex, age, address)); cout << "添加成功!\n"; }
显示所有联系人
void showAll(const vector& contacts) { if (contacts.empty()) { cout << "通讯录为空。\n"; return; } for (const auto& p : contacts) { cout << "姓名:" << p.name << " 电话:" << p.phone << " 性别:" << p.sex << " 年龄:" << p.age << " 地址:" << p.address << "\n"; } }
按姓名查找
void findPerson(const vector& contacts) { string name; cout << "输入要查找的姓名: "; cin >> name; for (const auto& p : contacts) { if (p.name == name) { cout << "找到: " << p.name << " " << p.phone << "\n"; return; } } cout << "未找到该联系人。\n"; }
删除联系人
void deletePerson(vector& contacts) { string name; cout << "输入要删除的姓名: "; cin >> name; for (auto it = contacts.begin(); it != contacts.end(); ++it) { if (it->name == name) { contacts.erase(it); cout << "删除成功!\n"; return; } } cout << "未找到该联系人。\n"; }
基本上就这些。通过
vector管理联系人,代码简洁,易于扩展。你可以在此基础上加入文件读写(保存到txt或bin)、排序、修改功能,使程序更完整。C++标准库的
vector自动处理内存,避免手动管理指针,适合初学者和中小型项目。










