Введение Основной цикл статей уже использовал std::vector/QVector без подробного разбора внутреннего устройства — в этой статье разберём, как реализованы основные линейные контейнеры STL изнутри, и какая внутренняя структура…
Введение До C++11 работа с временем в стандартной библиотеке ограничивалась C-API (time_t, struct tm, difftime) — без типобезопасности единиц измерения и с неудобной работой с датами. std::chrono ввела…
Введение По умолчанию все контейнеры STL (std::vector, std::map, std::list и т.д.) используют std::allocator<T>, который обращается к глобальным operator new/operator delete. В большинстве приложений этого достаточно. Но в высокопроизводительных…
Введение Алгоритмы STL — sort, find_if, unique, lower_bound, контейнеры map/set — по умолчанию используют operator< или operator== для сравнения элементов. Но реальные задачи часто требуют сортировки по нестандартному…
Введение Классический стиль работы с алгоритмами STL — std::sort(v.begin(), v.end()) — требует постоянно передавать пары итераторов, что многословно и подвержено ошибкам (легко перепутать диапазоны двух разных контейнеров). C++20…
Введение Выбор правильного контейнера — это решение, которое влияет на производительность кода сильнее, чем большинство микрооптимизаций. На собеседованиях регулярно спрашивают о сложности операций у vector, list, map, unordered_map…
Введение Передача «массива и его размера» в функцию — одна из самых старых и самых проблемных идиом C++: void process(int* data, size_t size). Она не несёт информации о…
Введение Шаблоны (templates) — мощный инструмент для написания обобщённого кода, но не всегда подходящий: они требуют, чтобы реализация была видна в заголовочном файле, увеливают время компиляции и размер…
Введение До C++11 копирование было единственным способом передать объект «по значению»: если функция возвращала std::vector<int> из миллиона элементов, компилятор (в лучшем случае с помощью оптимизаций) копировал весь буфер.…
Введение В Qt-проектах разработчик часто стоит перед выбором: использовать стандартный std::unordered_map из STL или Qt-контейнеры QMap/QHash. На первый взгляд они решают одну и ту же задачу — отображение…
Нравится qthelper.ru? 💚
Сайт живёт без пейволов и обязательной подписки. Если статьи помогают вам в работе — поддержите проект.