Книги для программистов
55.2K subscribers
1.35K photos
283 videos
24 files
1.23K links
Книги по программированию, библиотека электронных книг для разработчиков.


По всем вопросам @evgenycarter

РКН clck.ru/3Ko9cz
Download Telegram
Почему в С++ массивы нужно удалять через delete[]

Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу к прочтению.

#cpp #programming

👉 @cpp_lib
👍13👎1
Пошаговое решение задачи среднего алгоритма — минимальное количество платформ, необходимое для железнодорожного вокзала.

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
C++ базовый курс, MIPT
Лекции по программированию на C++ в бакалавриате МФТИ.


Автор курса и лектор Константин Владимиров, ведущий инженер в отделе компиляторов корпорации Интел.
Курс рассчитан на начинающих. Предполагается некий базовый уровень знания C и ассемблера.
Каждая лекция завершается списком литературы, которая может помочь при самостоятельном освоении курса.

https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK

#cpp #programming

👉 @cpp_lib
👍48👎2
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
👍14
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
👍15🔥4
Шпаргалка по C++

Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14

#cpp #programming

👉 @cpp_lib
👍34👎4🤔2
Правила трех, пяти и нуля

В этой статье представлены правила трех, пяти и нуля, а также объясняется, какое из них следует использовать и когда.

Правило трех было придумано еще в 1991 году. Оно расширилось до правила пяти с семантикой перемещений в C++11, но даже оно затем было подчинено правилу нуля. Но что такое все эти правила? И должны ли мы им следовать?

#cpp #programming

👉 @cpp_lib
👍14
Решение задач C++

Массивы в C++
Двумерные массивы в C++ | Главная и побочная диагональ матрицы
Рекурсия C++
Двумерный массив C++. Элементы над главной и под главной диагональю.
Динамические массивы C++
Объектно-ориентированное программирование в C++ за 10 минут!

источник

#cpp #programming

👉 @cpp_lib
👍13🔥3👎2
Лучшие способы преобразования перечисления в строку

https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/

#cpp #programming

👉 @cpp_lib
👍6
Media is too big
VIEW IN TELEGRAM
Создание игры Тетрис на языке C++

Ссылка на картинки

Ссылка на GitHub

источник

#cpp #programming

👉 @cpp_lib
👍111
Как отлаживать лямбда-выражения 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
👍4
60 антипаттернов для С++ программиста

Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.

https://pvs-studio.ru/ru/blog/posts/cpp/1053/

#cpp #programming

👉 @cpp_lib
👍104
This media is not supported in your browser
VIEW IN TELEGRAM
Показываем видео в терминале

Приветствую, сегодня я опробую OpenCV, библиотеку для работы с видео, на примере простой задачи - символами ASCII вывести видеоролик в терминал.

Начнем с алгоритма, он вполне интуитивен:
- Загружаем видео
- Покадрово по нему проходимся, пока кадры не закончатся, для каждого кадра:
- Делаем черно-белым
- Скейлим его до нужных нам размеров (размеров консоли)
- Перебираем пиксели слева направо, сверху вниз, для каждого пикселя:
- Получаем его яркость
- Ставим в соответствие его яркости символ, который имеет схожую яркость (более яркий символ - значит содержит в себе больше пикселей)
- Записываем полученный символ в строку для вывода
- Выводим эту строку

https://habr.com/ru/articles/768456/

#cpp #programming

👉 @cpp_lib
🔥11👍5👎1🤯1
Лекции С++ продвинутый поток ФПМИ 2023-24

Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции

источник

#cpp #programming

👉 @cpp_lib
👍31🗿31👎1
С++

Сергей Шамбир (iSpring) - “Быстрые и надёжные сигналы-слоты в C++”
Евгений Зуев (Университет Иннополис) - “Архитектура компиляции: проблемы и решения.”
Константин Гейст (iSpring) - “Следи за своим состоянием: валидация в ООП”
Антон Полухин (Yandex.Taxi) - Полезный constexpr
Институт программных систем

источник

#cpp #programming

👉 @cpp_lib
👍54🔥2🎉2
Эффективное использование С++

Лекция 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🔥53🤔21
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
2👍2
Пишем игру для 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
🔥97👍5🤡2
Метапрограммирование

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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3