あるマップの内容を別のマップに挿入しようとしています。ここでは、コードは次のとおりマップに挿入するときにsegフォルトが発生するのはなぜですか?
std::map<std::string, int> Student::getGrades() const;
...
for(set<Student*, Cmp>::const_iterator it = s.begin(); it!=s.end(); ++it)
{
grades.clear();
grades.insert((*it)->getGrades().begin(), (*it)->getGrades().end());
for(map<string, int>::const_iterator itt = grades.begin(); itt!=grades.end(); ++itt)
{
if(itt->first == course && itt->second >= score1 && itt->second <= score2)
(*it)->display(cout);
}
}
sがgetGradesマップを返す()メソッドを持つ学生オブジェクトと各生徒のオブジェクトへのポインタを含むセットです。私はファイルから読み込んだ成績と一致する成績を見つけようとしており、それらの成績に対応する記録を印刷しています。しかし、insertメソッドは私にsegaultを与えています。助言がありますか?
「Student :: getGrades()」の宣言を表示できますか? – alexisdm