C++ 简单数据库示例:使用 vector 实现基本功能
C++ 简单数据库示例:使用 vector 实现基本功能
本文提供一个简单的 C++ 数据库示例,使用 std::vector 存储记录。示例涵盖了加载、保存、添加、删除和打印数据库的功能,并演示了如何使用该数据库。
代码示例
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
struct Record {
int id;
std::string name;
std::string email;
};
std::vector<Record> loadDatabase(const std::string& filename) {
std::vector<Record> database;
std::ifstream file(filename);
if (file.is_open()) {
Record record;
while (file >> record.id >> record.name >> record.email) {
database.push_back(record);
}
file.close();
}
return database;
}
void saveDatabase(const std::vector<Record>& database, const std::string& filename) {
std::ofstream file(filename);
if (file.is_open()) {
for (const auto& record : database) {
file << record.id << " " << record.name << " " << record.email << std::endl;
}
file.close();
}
}
void printDatabase(const std::vector<Record>& database) {
for (const auto& record : database) {
std::cout << "ID: " << record.id << ", Name: " << record.name << ", Email: " << record.email << std::endl;
}
}
void addRecord(std::vector<Record>& database, int id, const std::string& name, const std::string& email) {
Record record;
record.id = id;
record.name = name;
record.email = email;
database.push_back(record);
}
void deleteRecord(std::vector<Record>& database, int id) {
for (auto it = database.begin(); it != database.end(); ++it) {
if (it->id == id) {
database.erase(it);
break;
}
}
}
int main() {
std::vector<Record> database = loadDatabase("database.txt");
addRecord(database, 1, "Alice", "alice@example.com");
addRecord(database, 2, "Bob", "bob@example.com");
addRecord(database, 3, "Charlie", "charlie@example.com");
printDatabase(database);
deleteRecord(database, 2);
saveDatabase(database, "database.txt");
return 0;
}
代码解析
- 代码定义了一个名为
Record的结构体,用于存储每条记录的信息,包括 ID、姓名和电子邮件。 loadDatabase函数从名为 "database.txt" 的文件中加载数据库,并返回一个包含所有记录的std::vector。saveDatabase函数将数据库保存到名为 "database.txt" 的文件中。printDatabase函数打印数据库中的所有记录。addRecord函数将新记录添加到数据库中。deleteRecord函数从数据库中删除指定 ID 的记录。- 在
main函数中,代码首先从文件中加载数据库,然后添加几条记录并打印数据库内容。接着删除 ID 为 2 的记录,并将更新后的数据库保存到文件中。
扩展
此示例只是一个简单的数据库实现,你可以在此基础上进行扩展,例如:
- 添加更多字段到
Record结构体,以存储更多信息。 - 实现更复杂的查询功能,例如根据姓名或电子邮件进行搜索。
- 使用数据库管理系统 (DBMS) 来管理数据,例如 SQLite 或 MySQL。
希望本示例能够帮助你理解使用 C++ 创建简单数据库的基本概念。如果你有任何疑问或需要进一步的帮助,请随时提问。
原文地址: https://www.cveoy.top/t/topic/pPnC 著作权归作者所有。请勿转载和采集!