Полезные материалы по всему, что может быть полезно плюсовику/сишнику.
Пять продвинутых техник инициализации в C++: От reserve() до piecewise_construct
От операций с динамическими контейнерами до констант времени компиляции — C++ предлагает много интересных техник (как в этом знаменитом меме :)). В этой статье мы рассмотрим несколько продвинутых методов инициализации: от reserve() и emplace_back для контейнеров, до piecewise_construct и forward_as_tuple для кортежей. Благодаря этим техникам мы можем уменьшить количество временных объектов и более эффективно создавать переменные.
https://www.cppstories.com/2023/five-adv-init-techniques-cpp/
#cpp #programming
👉 @cpp_lib
⁉️Хотите разобраться в основах построения PKI (инфраструктуры открытых ключей), узнать о распространённых протоколах аутентификации и VPN, понять принципы работы электронной подписи, а также узнать, как криптография обеспечивает защиту платежных и банковских систем в крупных компаниях?
👉Приходите прокачиваться на бесплатный вебинар онлайн-курса «Криптографическая защита информации» — «Криптографическая защита в крупных компаниях»: регистрация
На уроке мы расскажем об основных аспектах криптографической защиты в сфере крупных компаний и покажем, как применение криптографии обеспечивает безопасность данных и информации на передовых фронтах бизнеса.
Вебинар будет особенно интересен специалистам по информационной безопасности, руководителям отделов информационной безопасности, системным администраторам и IT-специалистам, которые интересуются криптографией и хотят обеспечить надежную защиту данных и систем в своей компании.
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Генерация пещер при помощи клеточного автомата
Клеточный автомат — дискретная модель, изучаемая в математике, теории вычислимости, физике, теоретической биологии и микромеханике. Основой является пространство из прилегающих друг к другу клеток (ячеек), образующих решётку. Каждая клетка может находиться в одном из конечного множества состояний (например, 1 и 0).
https://habr.com/ru/articles/741564/
#cpp #programming
👉 @cpp_lib
Learn C++
#11 - While, Do While Loops & Break/Continue
#12 - Switch Statement
#13 - Strings
#14 - References (&)
#15 - Pointers (*)
#16 - Tuples
#17 - Maps
#18 - Vectors
#19 - Sets
#20 - Functions
источник
#cpp #programming
👉 @cpp_lib
Learn C++
#1 - How to Compile and Run C++ Code
#2 - C++ Program Structure
#3 - Data Types and Variables
#4 - User Input and Constants
#5 - Arithmetic Operators
#6 - Comparison Operators
#7 - Logical Operators (And, Or and Not)
#8 - If, Else & Else If
#9 - Arrays
#10 - For Loops
источник
#cpp #programming
👉 @cpp_lib
🔥Приглашаем на открытый урок по C++
Тема: С++ и СУБД
Дата: 19 сентября, 20:00 по Москве.
Урок пройдёт в рамках онлайн-курса "С++ Developer"
🔹На занятии:
- выясним, в каком случае стоит выбирать какой вид СУБД;
- на практике рассмотрим, как подключиться и использовать в С++ три самых популярных: MongoDB, Redis и PostgreSQL;
- получим понимание основных принципов различия типов СУБД;
- разберёмся, как подключить СУБД к своей программе на С++ для того чтобы сохранить и запросить данные.
🔹Урок подойдёт:
- начинающим программистам C++,
- программистам на других технологиях, которым любопытно, как в С++ работают с СУБД.
Дата: 19 сентября в 20:00 мск
⚡РЕГИСТРАЦИЯ НА УРОК
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
C++ Процессы и Потоки Windows
Научимся выводить с помощью C++ список активных процессов операционной системы Windows и их дочерних потоков.
Диспетчер задач Windows позволяет просмотреть список текущих процессов. Однако потоки данных процессов он не показывает.
источник
#cpp #programming
👉 @cpp_lib
Практический открытый урок для инженеров данных от OTUS
Встречаемся 19 сентября в 20:00 мск на вебинаре «Тревожный чемоданчик инженера данных на все случаи жизни» в рамках курса «Data Warehouse Analyst» от OTUS.
Кому подходит этот урок:
- Начинающим и продолжающим специалистам в области аналитики данных, Data Engineering
- Тем, кого пугают планы запросов или радуют циклические вставки пары строк в БД
- Желающим узнать best practices и как же на самом деле расшифровывается «KISS»
Также это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени!
Регистрируйтесь и ставьте событие в календарь, чтобы ничего не пропустить.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Муравьиный алгоритм | Задача коммивояжёра
Задача коммивояжёра — это классическая комбинаторная задача, в которой необходимо найти самый короткий маршрут, проходящий через все заданные города, и вернуться в начальную точку. Путешественник должен посетить каждый город один раз, при этом общая длина пути должна быть минимальной.
Задача коммивояжера является NP-полной, то есть нет известного эффективного алгоритма для ее решения, который работал бы для всех вариантов. Вместо этого применяются различные приближенные алгоритмы. В данной статье мы рассмотрим Муравьиный алгоритм и его реализацию на С++
https://habr.com/ru/companies/timeweb/articles/754462/
#cpp #programming
👉 @cpp_lib
Как быстро выучить С++? 6 эффективных способов выучить C++ с нуля
00:25 «Язык» C/C++
01:12 Зачем изучать C++?
02:25 #1. Чистый Си
03:50 #2. Высокоуровневые конструкции
04:51 #3. Практика
06:16 #4. Техническое интервью
06:49 #5. Отладка и дополнение Open Source без гемора со сборкой
09:42 #6. Ресурсы для профессионалов
10:13 Итог
источник
#cpp #programming
👉 @cpp_lib
Как я вошёл в клуб бага 323
Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»
А баг компилятора — это серьёзно: за двенадцать лет программирования на C++ я обнаружил (и написал отчёт) всего... об одном. И могу сказать, что перед отправкой отчёта о баге GCC я максимально тщательно протестировал и проверил его, чтобы не выглядеть идиотом.
Впрочем, ладно, вот моя история.
Rus https://habr.com/ru/articles/754730/
Eng https://studios.ptilouk.net/superfluous-returnz/blog/2023-08-11_bug323.html
#cpp #programming
👉 @cpp_lib
C++ интервью с инженером Google
Посмотрите, как кто-то пытается решить задачу Closest Coin на C++ с помощью инженера Google. Это пробное интервью — смогут ли они найти решение?
источник
#cpp #programming
👉 @cpp_lib
Неопределённое поведение в C/C++ и приёмы против лома
Некоторое время назад в Интернете ходила статья о неопределённом поведении, просто бесившая коренную аудиторию Rust. Завсегдатаи С и C++ в ответ только бурчали, что кто-то просто не понимает Всех Тонкостей и Нюансов Их Светлейшего Языка. Как обычно, пришло время и мне постараться изо всех сил и вставить мои пять копеек в эту застарелую дискуссию.
Готовьтесь поговорить об Основной Проблеме языков C и C++, а также о Принципе Лома.
Rus https://habr.com/ru/articles/756000/
Eng https://thephd.dev/c-undefined-behavior-and-the-sledgehammer-guideline
#cpp #programming
👉 @cpp_lib
Внутри STL: Строка
Можно подумать, что строка std::string (и все ее друзья из семейства std::basic_string) - это, по сути, вектор символов. Однако строки устроены иначе из-за специфических оптимизаций, допустимых для строк, но не для векторов.
https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532
#cpp #programming
👉 @cpp_lib
Что Должно Быть в Каждом FirmWare Pепозитории
В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики/SubSystems), которые могут пригодиться в практически любой сборке.
#cpp #programming
👉 @cpp_lib
Почему я программирую на С/C++ (язык для профессионалов!)
В этом замечательном видео мы поговорим о том как появился на свет такой язык программирования как C++, почему его вообще решил создать Бьерн Страуструп, и.т.д. Кто не знает то,
C++ это язык программирования высокого уровня, на нём можно писать как простые, так и очень сложные программы. Этот язык известен своею очень и очень хорошей скоростью компилируемых им программ. На нём делают игры и высокопроизводительные программы.
А также используют в системах управления в : адронных коллайдерах, самолётах, ракетах, и.т.д!
Но как говорится у всего есть свои плюсы и минусы, и С++ в этом случае не является исключением. И в этом видеоролике я вам расскажу в чём плюсы и минусы это языка программирования!
А так же я поведаю свою историю, как и почему я начал программировать на C++. Какой путь мне пришлось пройти!
Какие подводные камни были на пути изучения C++! Типа довольно сложного синтаксис и контроля над памятью который почти полностью предоставлен самому разработчику!
источник
#cpp #programming
👉 @cpp_lib
Язык С++ (для новичков)
Урок 01 - Первая программа, вывод на экран, пространство имен.
Урок 02 - Классы, первое знакомство. ООП. Инкапсуляция.
Урок 03 - Конструктор и деструктор.
Урок 04 - Пишем игру змейка для двух игроков.
Урок 05 - Операторы New и Delete
Урок 06 - ДЗ уроков 2, 3 и 5. Делаем зарядку.
Урок 07 - Простейший ИИ для игры змейка.
Урок 08 - Ввод с клавиатуры. Поток cin.
Урок 09 - Ссылки
Урок 10 - Перегрузка функций, конструктор копий, параметры по умолчанию
Всего доступно 27 уроков на youtube
#cpp #programming
👉 @cpp_lib
В науке управления фокус внимания чаще всего указывает на то, как команде работать «больше». Как мотивировать сотрудников, какие процессы и метрики применять. Это чрезвычайно важный навык руководителя.
Действительно, руководителю необходимо получать результат, используя минимум ресурсов. И здесь есть небольшой подвох, причинно-следственная нестыковка. Разве же работать «больше» и получать результат, нужный нашему заказчику, это одно и то же?
👉На бесплатном вебинаре онлайн-курса «Team Lead разработки» — «Как тимлиду делать меньше, чтобы получать больше» — обсудим вопрос: всегда ли тяжелый труд означает замечательный результат?
Обсудим часто остающийся в тени ресурс повышения результативности путем минимизации выполняемой работы. А также научимся применять этот ресурс.
Вебинар будет полезен IT-специалистам, принимающим решения всех уровней и влияющим на загрузку команд — тимлидам, руководителям проектов, архитекторам, аналитикам.
После вебинара вы увидите и научитесь использовать секретный ресурс увеличения результативности через минимизацию затрат. А что, так можно было?!
🔥Также вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Когда мужчина предлагает $екс
#юмор #cpp #programming
👉 @cpp_lib
Передача параметров в потоке в зависимости от диапазонов
https://tristanbrindle.com/posts/parameter-passing-in-flux-vs-ranges
#cpp #programming
👉 @cpp_lib
C++ Что такое указатели и зачем они нужны
источник
#cpp #programming
👉 @cpp_lib
Распространённые паттерны опечаток при программировании
Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки.
На чём основаны наблюдения
С целью тестирования и продвижения статического анализатора кода PVS-Studio мы проверяем различные открытые проекты. Найдя ошибки, мы сообщаем о них авторам проектов, коллекционируем их и пишем статьи про наиболее интересные случаи.
Рассматривая все эти ошибки, я постепенно замечаю различные повторяющиеся паттерны опечаток. За редким исключением они не зависят от языка программирования. По крайней мере, они одновременно свойственны коду, написанному на C, C++, C#, Java. В этой статье я опишу 7 паттернов, которые заметил к настоящему моменту:
Эффект последней строки.
Злополучная функция memset.
Неверные функции сравнения.
Неверные функции копирования.
Ошибки работы с датами и временем.
Несчастливые числа: 0, 1, 2.
Ошибка на единицу (off-by-one error).
https://habr.com/ru/companies/pvs-studio/articles/756872/
#cpp #programming
👉 @cpp_lib
Назад к основам: контейнеры С++
источник
#cpp #programming
👉 @cpp_lib
Язык Си++, Rust не победит. Статический анализ и компиляторы
00:00 Вступление
00:59 Приветствие Филиппа
01:46 Как нашел первую работу Си++ программистом
02:27 Про учебу в ВУЗе
03:02 Самообучение кроме ВУЗа
04:27 Что готовил к первому собеседованию на Си++ разработчика
06:18 Тула, как лайфхак для джунов
06:57 Сколько времени нужно, чтобы воспитать джуна Си++
08:50 Си++ как первый язык, имеет смысл?
11:11 Какие демо проекты можно сделать на Си++
13:35 Написать операционную систему или идти от того, что нравится
14:56 Пробовал писать свой язык программирования?
15:21 Неочевидности в языках
17:32 Про Yacc и Bison / парсинг языков и грамматика языка
19:18 Имеет ли смысл идти в Си++ сейчас?
23:22 500 мегабайт исходников и почему мало браузеров
24:20 Отличие Си и Си++. Использование в микроконтроллерах
27:06 Тенденции роста популярности Си++
30:16 Почему Си и Си++ быстрее других языков
31:22 Ошибки в компиляторах
31:43 Стандарты, засахаривание Си++
34:56 Может лучше добавить статический анализ?
38:05 Бесплатная лицензия для opensource
38:30 Что такое статический анализ
40:32 Подарок для зрителей
40:46 Этапы компиляции кода
44:18 Как придумывают правила
47:32 Общение с программистами на поддержке
50:28 Rust убийца Си++
56:53 Какой язык взять вторым к Си++?
59:26 Статический анализ JavaScript
01:06:00 Как в этом разобраться
01:14:20 Где искать Филиппа
01:15:35 АНОНС ПРОДОЛЖЕНИЯ Байки про Си++
источник
#cpp #programming
👉 @cpp_lib
Быстрый двоичный поиск без ветвления
Мои читатели — занятые люди, поэтому сразу перейду к делу. Вот она, самая быстрая обобщённая (и простая) реализация двоичного поиска на C++
Rus https://habr.com/ru/companies/ruvds/articles/756422/
Eng https://mhdm.dev/posts/sb_lower_bound/
#cpp #programming
👉 @cpp_lib
Рассмотрим простенькие задачки по C++, где могут пригодиться побитовые логические операции.
источник
#cpp #programming
👉 @cpp_lib
Обучения GoLang-разработке с постоплатой и гарантированное трудоустройство. Учись сейчас – плати, когда устроишься на работу. Не захотел работать в IT – ничего не должен! 💸
❗Старт нового потока по GoLang от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой опытного ментора в течение 18 месяцев.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Выпускники школы IT-mentor зарабатывают от 150 тыс.руб.
Почему тебе точно нужно в школу IT-mentor?
✔ Только актуальная инфа и востребованные стек технологий: Основы Go, Go Runtime, Concurrency, Frameworks, Tools, Testing, Базы данных, Оркестрация, Брокеры сообщений, и др.
✔ Индивидуальная программа, заточенная под твой уровень знаний
✔ Контроль знаний с обратной связью менторов
✔ Работа на реальном проекте – при выпуске готовый кейс
✔ Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
✔ Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.
Стань частью IT-сообщества!
А если хорошо знаешь английский, вообще nice🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Давай жми быстрее, мест осталось мало!
10 лучших практик безопасного программирования на С++
https://www.incredibuild.com/blog/top-10-secure-c-coding-practices
#cpp #programming
👉 @cpp_lib
✅Приглашаем на открытый урок по С++ от OTUS
Тема: Почему в C++ 13 способов передать параметр в функцию?
Дата: 22 августа, 20:00
Преподаватель: Павел Филонов, Ex-Data Science Manager в Kaspersky
Урок пройдёт в рамках курса «Специализация С++ Developer» от OTUS
🔹Что будет на занятии:
- синтаксис передачи параметров в функции;
- константы, указатели, ссылки, умные указатели, lvalue, rvalue, forward reference;
- практические советы по объявлению функций, основанные на C++ Core Guidelines.
🔸Чему вы научитесь:
- узнаете про разнообразие способов объявления параметров функции;
- сможете обоснованно выбирать, какой способ использовать в разных ситуациях.
Доступ к уроку бесплатный. После него вы сможете продолжить обучение на курсе, который доступен в рассрочку!
♦️Регистрация: https://otus.pw/3Ph6/
Самый быстрый и безопасный PNG декодер в мире
TL;DR: декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.
Декодирование PNG с помощью Wuffs обсуждалось на Hacker News №1, Hacker News №2, /r/programming, /r/rust и lobste.rs.
https://habr.com/ru/articles/751462/
#cpp #programming
👉 @cpp_lib