假设我想创建一个包含学生向量的大学课程:
class College {
vector<Student> _students;
}
除了学生向量之外,我还想创建一个 MAP,其中键是学生,值是他的成绩。
map<Student,size_t> _student_grades;
问题是在两种数据结构(地图和向量)中保存同一个学生的两个副本看起来有点低效。我考虑过让向量成为学生的“主要”数据结构,而地图将只包含一个指向学生及其成绩的指针。
就像是:
map<Student*,size_t> _student_grades;
ofc 的最大缺点是,当我从向量中删除一个学生对象时,我应该立即将其从地图中删除,以避免指向“无”的指针。
我很想听听一些替代解决方案或改进我的问题。
提前致谢。