• Авторизация


Оптимизация функции на С++ STL 25-12-2016 23:54 к комментариям - к полной версии - понравилось!


Побывал на днях на собеседовании (С++) и дали там задание оптимизировать функцию типа такой.

Employee findEmployee(vector< Employee > data, string addr) {
for (auto it = data.begin(); it != data.end(); it++) {
if (it->m_addr == addr)
return it;
}
}


Что я перечислил:

  • изменение асимптотической сложности на O(log(n)) c map или на O(1) с unordered_map, если память позволяет, но оказалось, что алгоритм менять не предполагается;

  • передача входных и выходных параметров по ссылке;

  • замена it++ на ++it;

  • вынос конечного итератора в константу const auto itend = data.end() и сравнение итератора с ней.


Но от меня ждали чего-то еще. Я добавил пункт про возможность оптимизации сравнения строк путем сравнения типов данных более широких чем char, исходя из разрядности целевой платформы.
И все. Но от меня ждали чего-то еще. Напишите пожалуйста, если знаете или догадались что именно? Я в непонятках.

https://ru-programming.livejournal.com/1361776.html

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Оптимизация функции на С++ STL | lj_ru_programming - Программизм | Лента друзей lj_ru_programming / Полная версия Добавить в друзья Страницы: раньше»