
Сергей Копелиович
СПб ВШЭ
Оптимизации, которые можно рассмотреть и видос с мыслями поглядеть. Аллокатор (как ускорить STL?) memmove (стандартная реализация проигрывает реализации от LLM).
Хеш-таблица (как пользоваться стандартной? почему стандартная квадрат? квадрат?), как написать свою и почему это лучше — открытая адресация.
pair<int,int> p[N] или int a[N],b[N]? p[i] = {x,y} vs два присваивания (оптимизация жжет!)
Вектор векторов (стандартное зло).
Много маленьких хеш-таблиц (стандартное зло; в целом много мелких объектов).
Ввод-вывод данных (все STL способы — зло).
Яндекс —> Корасик и parseInt —> exception'ы (просто анекдот из детства и мораль «оптимизировать только после профайлинга»).
i++ vs ++i (важно понимать, что правильный ответ — «пофиг») vector или vector (стандартное зло vector).
vector: reserve, переиспользование (база).
Базовая сказка про кеши и параллелизм (сравнение строк за квадрат для 200 000 меньше полсекунды — база).

СПб ВШЭ