学生のベクトルを含む大学のクラスを作成したいとします。
class College {
vector<Student> _students;
}
生徒のベクトルに加えて、キーが生徒で、値が生徒の成績である MAP も作成したいと考えています。
map<Student,size_t> _student_grades;
問題は、同じ学生の 2 つのコピーを両方のデータ構造 (マップとベクトル) に保持するのは、効率が悪いように見えることです。ベクターを生徒の「メイン」データ構造にすることを考えました。マップには、生徒とその成績へのポインターのみが含まれます。
何かのようなもの:
map<Student*,size_t> _student_grades;
c の大きな欠点は、ベクターから学生オブジェクトを削除するときに、「何もない」ポインターを避けるために、マップからも即座に削除する必要があることです。
問題の代替解決策または私の改善点を聞きたい..
前もって感謝します。