在列表中查找重复的字符串

时间:2015-05-24 23:37:39

标签: c++

我有一个清单:

Class Name Surname
Math John Johnson
Programming Tom Tomson
Physics John Johnson

我想找出哪个老师教大多数课程并将其作为字符串返回。我写了一个简单的类来保存,获取,添加信息。

template <typename tip>
string FindTeacher(List <tip> & A)
{
string module, surname, name, TeacherX;
for (int i = 0; i < A.Length(); i++)
{
tip kk = A.Take(i);
kk.Take(module, surname, name);
//stuck on this part, what to do next?
//how do i find that John Johnson teaches 2 classes, and Tom teaches only 1
}
return TeacherX;
}

如果我很难理解,我非常抱歉,英语不是我的母语。

1 个答案:

答案 0 :(得分:0)

您可以使用std::unodered_mapstd::map
std::pair<std::string, std::string> >为关键, 和size_t作为数据,每次你得到: kk.Take(module, surname, name); 按键(姓氏,名称)查找,如果没有插入1作为数据,否则将数据增加1。