#include <iostream> #include <vector> #include <string> #include <sstream> // 定义一个结构体来存储每行数据 struct Record { std::string ip; int value; std::string date; }; // 写入数据到内存 void writeToMemory(std::vector<Record>& records, const std::string& ip, int value, const std::string& date) { // & records 其中的 & 表示引用来自其它函数传来的内存地址来使用并且重新命名动态数组类型名字,而不是新建一个内存地址 Record newRecord; newRecord.ip = ip; newRecord.value = value; newRecord.date = date; records.push_back(newRecord); // 动态数组的追加 } // 读取内存中的数据并打印 void readFromMemory(const std::vector<Record>& records) { for (const auto& record : records) { // auto 自动类型; record 获取 records 对象, 内存扩展到多个对象。 std::cout << record.ip << " " << record.value << " " << record.date << std::endl; // 对象里面的成员 } } // 修改内存中的数据,以 IP 为索引 void modifyRecord(std::vector<Record>& records, const std::string& oldIp, const std::string& newIp, int newValue, const std::string& newDate) { for (auto& record : records) { // 全部循环读取,然后判断ip是指定ip。 if (record.ip == oldIp) { record.ip = newIp; record.value = newValue; record.date = newDate; return; } } std::cerr << "未找到 IP 为 " << oldIp << " 的记录,无法修改。" << std::endl; } // 删除内存中的数据,以 IP 为索引 void deleteRecord(std::vector<Record>& records, const std::string& ipToDelete) { for (auto it = records.begin(); it != records.end(); ++it) { if (it->ip == ipToDelete) { // 循环遍历的开始和结束游标命令 begin, end records.erase(it); // erase 移除元素 return; } } std::cerr << "未找到 IP 为 " << ipToDelete << " 的记录,无法删除。" << std::endl; } int main() { std::vector<Record> records; // std::vector 动态数组容器; push_back 追加元素; size 获取元素数量; erase 删除指定位置元素 // 定义一个 Record 结构体三个元素类型的动态数组容器 // 写入数据到内存 for(int i=0;i<10; i++){ writeToMemory(records, "10.1.1." + std::to_string(i), 999, "20241101"); // std::to_string 转换为目标的str字符串类型。 } // 读取并打印数据 std::cout << "初始数据:" << std::endl; readFromMemory(records); // 修改数据 modifyRecord(records, "10.1.1.1", "10.1.1.1", 777, "20241103"); std::cout << "\n修改后的数据:" << std::endl; readFromMemory(records); // 删除数据 deleteRecord(records, "10.1.1.2"); std::cout << "\n删除后的数据:" << std::endl; readFromMemory(records); return 0; }
Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统【软著登字第15121829号】安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:18.97.14.88,2025-03-22 13:19:41,Processed in 0.0113 second(s).