数据生成:生成百万级的学生数据(学号、姓名、成绩),以CSV格式存储。
数据加载:把CSV里的数据,分别加载到三种不同的数据结构里(vector、map、unordered_map)。
精确查询测试:随机生成一个学号,测试三种容器查询一个特定学生成绩的耗时。
范围查询测试:给定一个成绩区间(如80-90分),测试三种容器统计这个区间内学生数量的耗时。
性能对比结论:用高精度计时,对比三种容器在不同查询场景下的效率差异,得出选型建议。
自定义结构体:Student,包含number(学号)、name(姓名)、point(成绩)三个字段。
数据生成器:用ofstream和现代随机数库(random + mt19937)生成百万行CSV文件。
CSV解析器:自己写了split函数,按逗号分割每一行,解析成Student对象。
三种容器存储:用vector、map、unordered_map分别存储相同的数据。
高精度计时:用chrono库,精确到纳秒。
防编译器优化:引入volatile变量,阻止编译器优化掉“未使用”的查询结果,确保计时真实。