Оптимизация функции на С++ STL
|
|
Воскресенье, 25 Декабря 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, исходя из разрядности целевой платформы.
И все. Но от меня ждали чего-то еще. Напишите пожалуйста, если знаете или догадались что именно? Я в непонятках.
http://ru-programming.livejournal.com/1361776.html
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-