STL: стандартная библиотека шаблонов C++

Стандартная библиотека шаблонов C++: контейнеры, итераторы, алгоритмы и функциональные объекты. Разборы с примерами показывают не только «как вызвать», но и как контейнеры устроены внутри, чем отличаются и что выбрать под задачу.

STL

Move-семантика и std::move на практике в C++-коде

Введение До C++11 копирование было единственным способом передать объект «по значению»: если функция возвращала std::vector<int> из миллиона элементов, компилятор (в лучшем случае с помощью оптимизаций) копировал весь буфер.…

STL

std::optional в C++: где использовать вместо проверок на nullptr

Введение Долгое время C++-разработчики выражали «значение может отсутствовать» через указатели и nullptr, через специальные «магические» значения (-1, 0, пустая строка) или через пару «значение + флаг успешности». Все…

STL

Многопоточность в C++: std::thread, std::async, std::mutex

Современные процессоры имеют несколько ядер, что позволяет выполнять несколько задач одновременно. Чтобы эффективно использовать вычислительные ресурсы, C++ предоставляет инструменты многопоточности через стандартную библиотеку <thread>, <future> и <mutex>. В…

STL

Как использовать std::optional, std::variant и std::any в C++

овременный C++ предлагает мощные инструменты для работы с неопределенными значениями и переменными, способными хранить данные разных типов. В этой статье мы рассмотрим три ключевых компонента стандартной библиотеки: std::optional,…

STL

std::pmr::memory_resource: гибкое управление памятью в C++17

Стандарт C++17 представил новый механизм управления памятью через пространство имен std::pmr (Polymorphic Memory Resources). Центральным элементом этой системы является абстрактный базовый класс std::pmr::memory_resource, который предоставляет полиморфный интерфейс для выделения и освобождения…