Forwarded from Библиотека C/C++ разработчика
Почему в С++ массивы нужно удалять через delete[]
Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу к прочтению.
#cpp #programming
👉 @cpp_lib
Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу к прочтению.
#cpp #programming
👉 @cpp_lib
👍13👎1
Forwarded from Библиотека C/C++ разработчика
Пошаговое решение задачи среднего алгоритма — минимальное количество платформ, необходимое для железнодорожного вокзала.
https://dev.to/adavize/solving-a-medium-algorithm-challenge-step-by-step-minimum-number-of-platforms-required-for-a-railway-station-1cpe
#cpp #programming
👉 @cpp_lib
https://dev.to/adavize/solving-a-medium-algorithm-challenge-step-by-step-minimum-number-of-platforms-required-for-a-railway-station-1cpe
#cpp #programming
👉 @cpp_lib
👍10
Forwarded from Библиотека C/C++ разработчика
C++ базовый курс, MIPT
Лекции по программированию на C++ в бакалавриате МФТИ.
Автор курса и лектор Константин Владимиров, ведущий инженер в отделе компиляторов корпорации Интел.
Курс рассчитан на начинающих. Предполагается некий базовый уровень знания C и ассемблера.
Каждая лекция завершается списком литературы, которая может помочь при самостоятельном освоении курса.
https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
#cpp #programming
👉 @cpp_lib
Лекции по программированию на C++ в бакалавриате МФТИ.
Автор курса и лектор Константин Владимиров, ведущий инженер в отделе компиляторов корпорации Интел.
Курс рассчитан на начинающих. Предполагается некий базовый уровень знания C и ассемблера.
Каждая лекция завершается списком литературы, которая может помочь при самостоятельном освоении курса.
https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
#cpp #programming
👉 @cpp_lib
👍48👎2
Forwarded from Библиотека C/C++ разработчика
Media is too big
VIEW IN TELEGRAM
Что должен знать Junior C++ разработчик
00:00 - Введение
00:24 - Знания по языку программирования
01:11 - Знания по алгоритмам и структурам данных
02:00 - Знания по операционным системам
02:43 - Знания по архитектуре компьютера
03:34 - Знания по компьютерным сетям
04:01 - Знания по базам данных
04:30 - Заключение
#cpp #programming
👉 @cpp_lib
00:00 - Введение
00:24 - Знания по языку программирования
01:11 - Знания по алгоритмам и структурам данных
02:00 - Знания по операционным системам
02:43 - Знания по архитектуре компьютера
03:34 - Знания по компьютерным сетям
04:01 - Знания по базам данных
04:30 - Заключение
#cpp #programming
👉 @cpp_lib
👍14
Forwarded from Библиотека C/C++ разработчика
nocc — распределённый компилятор для гигантских проектов на С++
У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.
В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp → .o в промышленных масштабах.
Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.
https://habr.com/ru/company/vk/blog/694536/
#cpp #programming
👉 @cpp_lib
У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.
В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp → .o в промышленных масштабах.
Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.
https://habr.com/ru/company/vk/blog/694536/
#cpp #programming
👉 @cpp_lib
👍15🔥4
Forwarded from Библиотека C/C++ разработчика
Шпаргалка по C++
Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
👍34👎4🤔2
Forwarded from Библиотека C/C++ разработчика
Правила трех, пяти и нуля
В этой статье представлены правила трех, пяти и нуля, а также объясняется, какое из них следует использовать и когда.
Правило трех было придумано еще в 1991 году. Оно расширилось до правила пяти с семантикой перемещений в C++11, но даже оно затем было подчинено правилу нуля. Но что такое все эти правила? И должны ли мы им следовать?
#cpp #programming
👉 @cpp_lib
В этой статье представлены правила трех, пяти и нуля, а также объясняется, какое из них следует использовать и когда.
Правило трех было придумано еще в 1991 году. Оно расширилось до правила пяти с семантикой перемещений в C++11, но даже оно затем было подчинено правилу нуля. Но что такое все эти правила? И должны ли мы им следовать?
#cpp #programming
👉 @cpp_lib
👍14
Forwarded from Библиотека C/C++ разработчика
Решение задач C++
Массивы в C++
Двумерные массивы в C++ | Главная и побочная диагональ матрицы
Рекурсия C++
Двумерный массив C++. Элементы над главной и под главной диагональю.
Динамические массивы C++
Объектно-ориентированное программирование в C++ за 10 минут!
источник
#cpp #programming
👉 @cpp_lib
Массивы в C++
Двумерные массивы в C++ | Главная и побочная диагональ матрицы
Рекурсия C++
Двумерный массив C++. Элементы над главной и под главной диагональю.
Динамические массивы C++
Объектно-ориентированное программирование в C++ за 10 минут!
источник
#cpp #programming
👉 @cpp_lib
👍13🔥3👎2
Forwarded from Библиотека C/C++ разработчика
Лучшие способы преобразования перечисления в строку
https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/
#cpp #programming
👉 @cpp_lib
https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/
#cpp #programming
👉 @cpp_lib
👍6
Forwarded from Библиотека C/C++ разработчика
Media is too big
VIEW IN TELEGRAM
Создание игры Тетрис на языке C++
Ссылка на картинки
Ссылка на GitHub
источник
#cpp #programming
👉 @cpp_lib
Ссылка на картинки
Ссылка на GitHub
источник
#cpp #programming
👉 @cpp_lib
👍11❤1
Forwarded from Библиотека C/C++ разработчика
Матрицы в C++
Ввод и вывод матриц
Сложение и вычитание матриц
Умножение матрицы на число
Транспонирование матрицы
источник
#cpp #programming
👉 @cpp_lib
Ввод и вывод матриц
Сложение и вычитание матриц
Умножение матрицы на число
Транспонирование матрицы
источник
#cpp #programming
👉 @cpp_lib
👍14💩7
Forwarded from Библиотека C/C++ разработчика
Как отлаживать лямбда-выражения C++ с помощью GDB
В современных версиях языка программирования C++ есть функция, известная как лямбда-выражения. В этой статье показано, как можно отлаживать лямбда-выражения с помощью GDB, GNU Project Debugger. Даже если вас не интересует отладка лямбда-выражений, представленные здесь приемы полезны для многих других ситуаций отладки.
https://developers.redhat.com/articles/2023/05/03/how-debug-c-lambda-expressions-gdb
#cpp #programming
👉 @cpp_lib
В современных версиях языка программирования C++ есть функция, известная как лямбда-выражения. В этой статье показано, как можно отлаживать лямбда-выражения с помощью GDB, GNU Project Debugger. Даже если вас не интересует отладка лямбда-выражений, представленные здесь приемы полезны для многих других ситуаций отладки.
https://developers.redhat.com/articles/2023/05/03/how-debug-c-lambda-expressions-gdb
#cpp #programming
👉 @cpp_lib
Red Hat Developer
How to debug C++ lambda expressions with GDB | Red Hat Developer
Modern versions of the C++ programming language have a feature known as lambda expressions. This article shows how you can debug lambda expressions using GDB, the GNU Project Debugger. Even if you're
👍4
Forwarded from Библиотека C/C++ разработчика
60 антипаттернов для С++ программиста
Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.
https://pvs-studio.ru/ru/blog/posts/cpp/1053/
#cpp #programming
👉 @cpp_lib
Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.
https://pvs-studio.ru/ru/blog/posts/cpp/1053/
#cpp #programming
👉 @cpp_lib
👍10❤4
Forwarded from Библиотека C/C++ разработчика
This media is not supported in your browser
VIEW IN TELEGRAM
Показываем видео в терминале
Приветствую, сегодня я опробую OpenCV, библиотеку для работы с видео, на примере простой задачи - символами ASCII вывести видеоролик в терминал.
Начнем с алгоритма, он вполне интуитивен:
- Загружаем видео
- Покадрово по нему проходимся, пока кадры не закончатся, для каждого кадра:
- Делаем черно-белым
- Скейлим его до нужных нам размеров (размеров консоли)
- Перебираем пиксели слева направо, сверху вниз, для каждого пикселя:
- Получаем его яркость
- Ставим в соответствие его яркости символ, который имеет схожую яркость (более яркий символ - значит содержит в себе больше пикселей)
- Записываем полученный символ в строку для вывода
- Выводим эту строку
https://habr.com/ru/articles/768456/
#cpp #programming
👉 @cpp_lib
Приветствую, сегодня я опробую OpenCV, библиотеку для работы с видео, на примере простой задачи - символами ASCII вывести видеоролик в терминал.
Начнем с алгоритма, он вполне интуитивен:
- Загружаем видео
- Покадрово по нему проходимся, пока кадры не закончатся, для каждого кадра:
- Делаем черно-белым
- Скейлим его до нужных нам размеров (размеров консоли)
- Перебираем пиксели слева направо, сверху вниз, для каждого пикселя:
- Получаем его яркость
- Ставим в соответствие его яркости символ, который имеет схожую яркость (более яркий символ - значит содержит в себе больше пикселей)
- Записываем полученный символ в строку для вывода
- Выводим эту строку
https://habr.com/ru/articles/768456/
#cpp #programming
👉 @cpp_lib
🔥11👍5👎1🤯1
Forwarded from Библиотека C/C++ разработчика
Лекции С++ продвинутый поток ФПМИ 2023-24
Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции
источник
#cpp #programming
👉 @cpp_lib
Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции
источник
#cpp #programming
👉 @cpp_lib
👍31🗿3❤1👎1
Forwarded from Библиотека C/C++ разработчика
С++
Сергей Шамбир (iSpring) - “Быстрые и надёжные сигналы-слоты в C++”
Евгений Зуев (Университет Иннополис) - “Архитектура компиляции: проблемы и решения.”
Константин Гейст (iSpring) - “Следи за своим состоянием: валидация в ООП”
Антон Полухин (Yandex.Taxi) - Полезный constexpr
Институт программных систем
источник
#cpp #programming
👉 @cpp_lib
Сергей Шамбир (iSpring) - “Быстрые и надёжные сигналы-слоты в C++”
Евгений Зуев (Университет Иннополис) - “Архитектура компиляции: проблемы и решения.”
Константин Гейст (iSpring) - “Следи за своим состоянием: валидация в ООП”
Антон Полухин (Yandex.Taxi) - Полезный constexpr
Институт программных систем
источник
#cpp #programming
👉 @cpp_lib
👍5❤4🔥2🎉2
Forwarded from Библиотека C/C++ разработчика
Эффективное использование С++
Лекция 1. Библиотеки, утилиты, средства разработки, сборка (Эффективное использование С++)
Лекция 2. Работа с памятью. Утечки ресурсов. RAII, умные указатели (Эффективное использование С++)
Лекция 3. Move semantics, rvalue reference, perfect forwarding.
Лекция 4. Callbacks: lambda, bind & function.
Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
Лекция 6. Обзор возможностей современных стандартов C++
источник
#cpp #programming
👉 @cpp_lib
Лекция 1. Библиотеки, утилиты, средства разработки, сборка (Эффективное использование С++)
Лекция 2. Работа с памятью. Утечки ресурсов. RAII, умные указатели (Эффективное использование С++)
Лекция 3. Move semantics, rvalue reference, perfect forwarding.
Лекция 4. Callbacks: lambda, bind & function.
Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
Лекция 6. Обзор возможностей современных стандартов C++
источник
#cpp #programming
👉 @cpp_lib
👍15🔥5❤3🤔2⚡1
Forwarded from Библиотека C/C++ разработчика
This media is not supported in your browser
VIEW IN TELEGRAM
QML и Widgets в одном проекте: решение без костылей
Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.
https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
Мы в MAX
#cpp #programming
👉 @cpp_lib
Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.
https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
Мы в MAX
#cpp #programming
👉 @cpp_lib
❤2👍2
Forwarded from Библиотека C/C++ разработчика
Пишем игру для NES на C
Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).
Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.
Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.
https://nesdoug.com/
Мы в MAX
#cpp #programming
👉 @cpp_lib
Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).
Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.
Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.
https://nesdoug.com/
Мы в MAX
#cpp #programming
👉 @cpp_lib
🔥9❤7👍5🤡2
Forwarded from Библиотека C/C++ разработчика
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Метапрограммирование
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
#cpp #programming
👉 @cpp_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3