0

学生のベクトルを含む大学のクラスを作成したいとします。

class College {

   vector<Student> _students;
}

生徒のベクトルに加えて、キーが生徒で、値が生徒の成績である MAP も作成したいと考えています。

  map<Student,size_t> _student_grades;

問題は、同じ学生の 2 つのコピーを両方のデータ構造 (マップとベクトル) に保持するのは、効率が悪いように見えることです。ベクターを生徒の「メイン」データ構造にすることを考えました。マップには、生徒とその成績へのポインターのみが含まれます。

何かのようなもの:

map<Student*,size_t> _student_grades;

c の大きな欠点は、ベクターから学生オブジェクトを削除するときに、「何もない」ポインターを避けるために、マップからも即座に削除する必要があることです。

問題の代替解決策または私の改善点を聞きたい..

前もって感謝します。

4

1 に答える 1