可以使用 STL 中的容器(如 vector、map 等)来缓存读取的数据,将数据存储在内存中。
例如,假设有一个名为 Student 的结构体:
struct Student {
int id;
string name;
int age;
};
复制代码
我们可以使用 vector 来存储所有学生的数据:
#include <vector>
#include <fstream>
vector<Student> students;
void load_data_from_db_file() {
ifstream ifs("db_file.txt");
if (!ifs) {
// 处理文件打开失败
return;
}
while (!ifs.eof()) {
Student student;
ifs >> student.id >> student.name >> student.age;
students.push_back(student);
}
ifs.close();
}
复制代码
在服务启动时,可以先调用 load_data_from_db_file 函数从数据库文件中读取数据并缓存到内存中。当服务重启时,可以重新调用该函数重新加载数据。
当需要查询某个学生信息时,可以遍历 students 容器进行查找:
Student find_student_by_id(int id) {
for (const auto& student : students) {
if (student.id == id) {
return student;
}
}
// 如果没有找到,则返回一个空的Student对象
return {};
}
复制代码
当需要修改或删除某个学生信息时,可以直接操作 students 容器中对应的元素,并将修改后的数据写回到数据库文件中。
相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址
c/c++后端技术交流群:579733396
评论