Так что мне дали этот вопрос и 20 минут, чтобы решить
Вот начало тела функции
typedef map<string, vector<string>> TopicMap;
typedef map<string, int> TopicCount;
vector<string> split (const string& line, char delim =' ')
{
vector<string> strs;
size_t pos = line.find(delim);
size_t initialPos = 0;
while (pos != string::npos)
{
strs.push_back(line.substr(initialPos, pos-initialPos));
initialPos = pos+1;
pos = line.find(delim, initialPos);
}
strs.push_back(line.substr(initialPos, pos - initialPos));
return strs;
}
TopicCount countTopicOccurences (const TopicMap& topicMap, const vector<string>& reviews)
{
//TODO complete me
for (string reviewword:reviews) {
}
}
В основном у меня есть входные данные вектора в виде списка обзоров и карты тем (строка) с ключевыми словами, составляющими тему (вектор). Я должен вывести количество раз, которое название темы отображается в каждом обзоре.
Я просто понятия не имею, как решить этот вопрос за 20 минут, так как понимание этого вопроса занимает около 5 минут. Дана функция разбиения строки c ++.
Я попытался разбить этот вопрос, используя цикл for_each для каждого обзора, а затем используя цикл for_each цикл for_each для отдельных тем. Поэтому, если тема сопоставляется с одним обзором, я увеличу отображение этой темы на 1. Но я считаю, что действительно сложно записать работоспособный код.
Любая помощь будет высоко ценится.