>>26121
Еще вот такая задача. Надо написать функцию, которая принимает массив строк, и возвращает массив, в котором из исходного массива удалены все строки, которые встречаются четное число раз. При этом, функция должна быть оптимизирована по скорости работы.
У меня получилось такое - https://www.onlinegdb.com/TWTCxMZCi . Непонятно, оптимально ли это? Если нет, как оптимизировать?
std::vector<std::string> remove_even_strings(std::vector<std::string> & ref)
{
std::vector<std::string> result;
std::map<std::string, size_t> srch;
for (auto & r : ref)
{
auto t = srch.insert(std::make_pair(r, 1));
if (t.second == false)
{
srch.at(r) = srch.at(r) + 1;
}
}
for (auto & r : ref)
{
if (srch.at(r) % 2 == 1)
{
result.push_back(r);
}
}
return result;
}