RadioProg
  • Статьи
    • Радиоэлектроника
      • Антенны и распространение радиоволн
      • Беспроводная связь
      • Высокочастотная техника
      • Волоконно-оптические линии связи (ВОЛС)
      • Измерительная техника
      • Исполнительные механизмы и драйверы
      • САПР
      • Спутниковая связь
      • Схемотехника
      • Телевидение
      • Цифровая электроника
      • Технологии и инструменты
      • Электронные компоненты
      • А что внутри?
      • Прочее (радиоэлектроника)
    • Программирование
      • Алгоритмы и структуры данных
      • Базы данных
      • Веб-разработка
      • Мультимедиа (разработка ПО)
      • Нейронные сети
      • Паттерны проектирования
      • Связь
      • Системы сборки ПО
      • Языки программирования
    • IT
      • Компьютерные сети
      • Операционные системы
      • Верстка
      • Системы контроля версий
    • Прочее
      • История технологий
      • Мультимедиа
      • Новости телекома
      • Нормативная документация
      • Охрана труда
      • Полезные программы
      • Просто интересно
      • Экономика телекоммуникаций и электронной промышленности
      • Экономика и инвестиции
  • Книги / руководства
  • Инструменты
    • Калькуляторы
  • Описания / ссылки на магазины
    • RF, Wi-Fi, Bluetooth, GSM, GPRS, GPS
    • Датчики
    • Дисплеи, индикаторы, светодиоды
    • Исполнительные механизмы и драйверы
    • Источники питания
    • Кнопки, клавиатуры, потенциометры
    • Макетирование
    • Одноплатные компьютеры
    • Отладочные платы
    • Платы расширения (shields)
    • Преобразователи, переходники, кабели
    • Прочие радиодетали
    • Приборы, инструменты, расходные материалы
    • Прочее (тех. описания, ссылки)
  1. Программирование
  2. Языки программирования

C++

Подкатегории

Изучаем C++
Сборник уроков по программированию на C++. Независимо от того, имели ли вы опыт программирования или нет, учебные материалы данного учебника проведут вас через все этапы написания, компиляции и отладки ваших программ на C++, и всё это снабжено большим количеством примеров.
C++ FAQ
Ответы на частые вопросы о C++
Daily bit(e) C++
Почти ежедневные небольшие порции информации о C++, STL и связанных темах.
Qt
Всё о работе с фреймворком Qt
Qt 6 QML Book / Руководство по QML

Статьи

Использование пользовательских удалителей (deleter) с shared_ptr и unique_ptr в C++ (добавлено1 января 2022 в 12:40)
Рассмотрим, как использовать пользовательский удалитель (deleter, делитер) с unique_ptr и shared_ptr, и зачем это может понадобиться.
Краткая справка по умным указателям в C++ (добавлено31 декабря 2022 в 14:35)
Умные указатели, доступные начиная с C++11, являются важной основой для написания безопасного кода на современном C++. Благодаря RAII (Resource Acquisition Is Initialization) они позволяют вам работать с указателями для эффективного выделения памяти или других управляемых объектов. Этот пост покажет вам основные моменты работы с этими удобными типами.
Еще про правила трех, пяти и ноля (добавлено30 декабря 2022 в 22:04)
О применении правил трех, пяти и ноля в C++ для классов – менеджеров ресурсов. А также о неявном предоставлении компилятором специальных функций-членов (конструктора по умолчанию, деструктора, конструкторов копирования и перемещения, операторов присваивания копированием и перемещением).
Правила трех, пяти и ноля (добавлено21 декабря 2022 в 00:03)
Цель данного поста – познакомить вас с правилами трех, пяти и ноля и объяснить, какое из них и когда вам следует использовать.
Семантика перемещения и rvalue-ссылки (основы современного C++) (добавлено14 декабря 2022 в 23:14)
Добро пожаловать в серию статей об основах современного C++, в которых мы подробно будем погружаться в одну тему за раз. Сегодня мы рассмотрим семантику перемещения, категории значений и rvalue-ссылки, представленные в C++11.
Поиск и min-max (серия «114 алгоритмов C++») (добавлено28 ноября 2022 в 19:13)
Об алгоритмах поиска, которые ищут конкретный элемент или подсчитывают количество совпадающих элементов, а также об алгоритмах минимума и максимума.
Куча и куча (серия «114 алгоритмов C++») (добавлено28 ноября 2022 в 05:27)
Об алгоритмах, которые предлагают семантику структуры данных max-кучи, и об алгоритмах, которые работают с неинициализированной памятью.
Генераторы, копирования и перемещения (серия «114 алгоритмов C++») (добавлено27 ноября 2022 в 07:41)
Об алгоритмах, генерирующих значения, и множестве вариантов копирования, предлагаемых стандартной библиотекой C++.
Левые свёртки и другие редукции (серия «114 алгоритмов C++») (добавлено13 ноября 2022 в 19:20)
В этой главе мы поговорим об алгоритмах редукции, то есть об алгоритмах, которые сводят диапазон к одному значению, и рассмотрим три группы алгоритмов: левые свёртки, работающие строго линейно, обобщенные редукции из C++17 и логические редукции.
Обработка ошибок и std::optional (добавлено29 октября 2022 в 21:57)
std::optional – тип-обертка, удобный, когда вы хотите выразить, что что-то «обнуляемо» и может быть «пустым». Например, вы можете вернуть std::nullopt, чтобы указать, что код сгенерировал ошибку… но лучший ли это выбор?
Использование std::optional в C++17 (добавлено16 октября 2022 в 13:14)
В данной статье описывается std:optional – новый вспомогательный тип, добавленный в C++17. Это тип-обёртка для вашего типа и флаг, указывающий, инициализировано значение или нет. Давайте посмотрим, где он может быть полезен, и как вы можете его использовать.
Преобразования (серия «114 алгоритмов C++») (добавлено18 мая 2022 в 22:03)
Алгоритмы преобразования изменяют состояние диапазонов, изменяя значения элементов, изменяя порядок элементов или удаляя элементы. Рассмотрим подобные алгоритмы, входящие в STL.
«Разделяй и властвуй» и множества (серия «114 алгоритмов C++») (добавлено13 апреля 2022 в 15:49)
В данной статье мы обсудим две категории алгоритмов: алгоритмы «разделяй и властвуй», работающие за время O(logn), и линейные алгоритмы, применимые только в отсортированных диапазонах.
Сортировка и разделение (серия «114 алгоритмов C++») (добавлено8 апреля 2022 в 22:31)
Вторая статья об алгоритмах STL, в которой мы обсудим лексикографическое сравнение и оператор spaceship, а затем пройдемся по всем вариантам сортировок, частичным сортировкам и алгоритмам разделения.
Прерывание многоуровневых циклов с помощью IIFE (добавлено3 апреля 2022 в 20:48)
Рассмотрим применение лямбда-функций для прерывания выполнения многоуровневых циклов.
114 стандартных алгоритмов C++. Введение (добавлено3 апреля 2022 в 18:09)
Вводная статья из серии статей об алгоритмах, предоставляемых библиотекой STL, в которой рассматриваются понятия итераторов и диапазонов, а также алгоритмы for_each и swap.
Лучшие способы преобразования enum в строку (добавлено20 марта 2022 в 20:41)
О способах преобразования значений enum в строки для логирования и других задач.
Паттерн «Фабрика» на современном C++ (добавлено21 февраля 2022 в 23:31)
О паттерне проектирования «Фабрика» на примере создания инструментов экспорта аудио и видео на C++.
Принцип «Инверсия зависимостей» на современном C++ (добавлено17 февраля 2022 в 21:10)
О принципе инверсии зависимостей из аббревиатуры SOLID на простом примере на C++.
Паттерн «Стратегия» на современном C++ (добавлено14 февраля 2022 в 17:44)
Реализация паттерна «Стратегия» на C++ на примере обработки запросов пользователей в службу технической поддержки.
Паттерны проектирования «Шаблонный метод» и «Мост» на современном C++ (добавлено13 февраля 2022 в 18:40)
Обзор паттернов «Шаблонный метод» (Template method) и «Мост» (Bridge) на примере кода для торгового робота.
Шаблон «Наблюдатель» на современном C++ (добавлено13 февраля 2022 в 14:06)
О паттерне проектирования Наблюдатель (Observer) на простом примере системы управления пользователями.
Принципы SOLID в современном C++ (добавлено10 февраля 2022 в 20:51)
О принципах SOLID на простых и понятных примерах.
Краткий обзор string_view (добавлено7 февраля 2022 в 00:42)
Краткий обзор на класс std::string_view, появившийся в C++17.
C++20 Ranges. Полное руководство (добавлено6 февраля 2022 в 19:16)
C++20 Ranges, также известная как STL v2, представляет из себя более эффективную замену существующих алгоритмов и технических средств STL. В этой статье мы пройдемся по изменениям, введенным Ranges (диапазоны/интервалы), обсудим представления (views), которые представляют собой новый подход к композиции алгоритмов, и рассмотрим примеры реализации FizzBuzz с использованием трех разных методов, в каждом из которых используются некоторые аспекты библиотеки Ranges.
Анатомия асинхронных фреймворков в С++ и других языках (добавлено29 января 2022 в 12:07)
Об устройстве асинхронных движков с корутинами и без них
std::atomic. Модель памяти C++ в примерах (добавлено27 января 2022 в 23:06)
О многопоточности, модели памяти и атомиках в C++.
Многопоточность в C++. Возврат значений и проброс исключений (добавлено1 января 2021 в 17:34)
Об инструментах STL для получения возвращаемых значений и перехвата исключений, создаваемых асинхронными задачами (т. е. функциями, запущенными в отдельных потоках)
Многопоточность в C++. Защёлки и барьеры (latches and barriers) (добавлено31 декабря 2021 в 19:00)
О механизме синхронизации потоков, который позволяет блокировать любое количество потоков до тех пор, пока ожидаемое количество потоков не достигнет барьера.
Многопоточность в C++. Семафоры (semaphores) (добавлено31 декабря 2021 в 16:22)
О семафорах, примитиве синхронизации работы процессов и потоков, в основе которого лежит счётчик, над которым можно производить две атомарные операции: увеличение и уменьшение значения на единицу.
Многопоточность в C++. Условные переменные (condition variables) (добавлено31 декабря 2021 в 15:00)
Об условных переменных, примитиве синхронизации, который может использоваться для блокировки потоков до тех пор, пока другой поток не изменит общую переменную (не выполнит условие) и не уведомит об этом condition_variable.
Многопоточность в C++. Однократный вызов функции с помощью std::call_once и std::once_flag (добавлено28 декабря 2021 в 03:15)
О способах обеспечения только однократного вызова какой-либо функции, например, выполняющей затратную инициализацию.
Многопоточность в C++. Захват нескольких мьютексов одновременно (добавлено28 декабря 2021 в 02:32)
Об инструментах STL, помогающих избежать взаимной блокировки при захвате нескольких мьютексов одновременно.
Многопоточность в C++. Мьютексы чтения-записи для защиты часто читаемых и редко обновляемых структур данных (добавлено22 декабря 2021 в 01:39)
О способах организации работы потоков большую часть времени структура данных используется только для чтения, а в защите мы нуждаемся только при редких обновлениях этой структуры.
Многопоточность в C++. ​Рекурсивная блокировка мьютекса (добавлено22 декабря 2021 в 01:12)
Об инструментах многократного захвата мьютекса одним и тем же потоком, без предварительной его разблокировки.
Многопоточность в C++. ​RAII механизмы для блокировки мьютекса (добавлено22 декабря 2021 в 00:54)
Класс std::mutex не рекомендуется использовать напрямую, так как нужно помнить о вызове unlock на всех путях выполнения функции, в том числе на тех, которые завершаются броском исключения. Рассмотрим способ решения этого вопроса – технику RAII (Resource Acquisition Is Initialization) и связанные с этим инструменты.
Многопоточность в C++. Простая защита данных с помощью мьютекса (добавлено22 декабря 2021 в 00:27)
Основным механизмом защиты совместно используемых данных, обеспеченным стандартом C++, является мьютекс. Рассмотрим основы работы с ним.
Многопоточность в C++. Управление потоками (добавлено21 декабря 2021 в 01:22)
О создании и управлении потоками в C++. Основы работы с объектами класса std::thread.
Многопоточность в C++. Основные понятия (добавлено20 декабря 2021 в 13:19)
Вводная статья о многопоточности в C++ (основные понятия; проблемы, связанные с многопоточностью; примитивы синхронизации; что такое мьютекс).
Как weak_ptr может помешать полному освобождению памяти управляемого объекта (добавлено29 октября 2021 в 04:29)
Рассмотрим, почему в некоторых случаях память, выделенная для объекта, управляемого shared_ptr, может не быть освобождена до тех пор, пока все слабые указатели (weak_ptr) также не «умрут».
Проблемы с умными указателями в C++ (добавлено29 октября 2021 в 00:29)
Рассмотрим несколько интересных случаев с умными указателями в C++ (приведение типов, обработка массивов, передача в функции), чтобы не прострелить себе ногу.
Что такое идиома копирования и обмена (copy-and-swap) (добавлено23 июля 2021 в 00:20)
Идиома копирования и обмена – это решение, которое элегантно помогает оператору присваивания достичь двух вещей: избежать дублирования кода и обеспечить строгую гарантию безопасности исключений. Рассмотрим, как ее реализовать.
За кулисами C++: статическое, реинтерпретирующее приведения типов и приведение типов в стиле C (добавлено22 мая 2021 в 15:23)
Вы когда-нибудь задумывались, почему приведения типов в стиле C и приведения reinterpret_cast считаются злом? Давайте подробно разберемся, что с ними не так.
Непрерывные, динамические, многомерные массивы в C++ (добавлено19 декабря 2017 в 03:07)
Создание динамических, непрерывных, многомерных массивов в C++.
Начало
Последние материалы
в разделеПрограммирование
  • Daily bit(e) C++. Ограничение noexcept
  • Daily bit(e) C++. std::make_unique_for_overwrite, std::make_shared_for_overwrite и std::allocate_shared_for_overwrite
  • Daily bit(e) C++. Объединение сортированных списков
  • Daily bit(e) C++. std::shared_mutex
  • Daily bit(e) C++. Лексикографическое сравнение с контейнерами
  • Daily bit(e) C++. std::invoke
  • Daily bit(e) C++. std::source_location
  • Daily bit(e) C++. std::priority_queue
  • Daily bit(e) C++. Объединение интервалов
  • Daily bit(e) C++. std::binary_semaphore
Последние материалы
в других разделах
  • Как в Git изменить файлы в старом (не последнем) коммите
  • Вопросы/ответы для подготовки к экзамену по охране труда. Обучение, проверка знаний, инструктажи
  • Вопросы/ответы для подготовки к экзамену по электробезопасности. Технические мероприятия
  • Вопросы/ответы для подготовки к экзамену по электробезопасности. Организация работ
  • 8.2 Настройка Git – Атрибуты Git
  • 8.1 Настройка Git – Конфигурация Git
  • 7.15 Инструменты Git – Заключение
  • 7.14 Инструменты Git – Хранилище учётных данных
  • 7.13 Инструменты Git – Замена
  • 7.12 Инструменты Git – Создание пакетов

Присоединяйтесь к нам во ВКонтакте!

Яндекс.Метрика
Радиоэлектроника
  • Антенны и распространение радиоволн
  • Беспроводная связь
  • Высокочастотная техника
  • Волоконно-оптические линии связи (ВОЛС)
  • Измерительная техника
  • Исполнительные механизмы и драйверы
  • САПР
  • Спутниковая связь
  • Схемотехника
  • Телевидение
  • Цифровая электроника
  • Технологии и инструменты
  • Электронные компоненты
  • А что внутри?
  • Прочее (радиоэлектроника)
Программирование
  • Алгоритмы и структуры данных
  • Базы данных
  • Веб-разработка
  • Мультимедиа (разработка ПО)
  • Нейронные сети
  • Паттерны проектирования
  • Связь
  • Системы сборки ПО
  • Языки программирования
IT
  • Компьютерные сети
  • Операционные системы
  • Верстка
  • Системы контроля версий
Прочее
  • История технологий
  • Мультимедиа
  • Новости телекома
  • Нормативная документация
  • Охрана труда
  • Полезные программы
  • Просто интересно
  • Экономика телекоммуникаций и электронной промышленности
  • Экономика и инвестиции
radioprog logo

Мы в соцсетях

         

Карта сайта

Последние материалы

Контакты: radioprog@gmail.com

© 2008 —2025 RadioProg.RU