Форматирование текста на C++ старым и новым способом
Форматирование текста на C++ можно реализовать несколькими способами:
потоками ввода-вывода. В частности, через std::stringstream
с помощью потоковых операций (таких как operator <<
);
функциями printf, в частности sprintf
;
с помощью библиотеки форматирования C++20, в частности std::format / std::format_to
;
с помощью сторонней библиотеки, в частности {fmt}
(основа новой стандартной библиотеки форматирования).
Первые два варианта представляют старые способы. Библиотека форматирования, очевидно, является новым. Но какой из них лучше в плане производительности? Это я и решил выяснить.
Rus https://habr.com/ru/companies/ruvds/articles/761910/
Eng https://mariusbancila.ro/blog/2023/09/12/formatting-text-in-c-the-old-and-the-new-ways/
#cpp #programming
👉 @cpp_lib
Рабочие контракты: высокопроизводительная асинхронная система управления задачами без блокировок
Много лет назад я придумал методику управления асинхронными задачами, которая, насколько мне известно, сильно отличалась и продолжает отличаться от существующих подходов. Типичный подход заключается в том, что задачи помещаются в очередь и выполняются, как только они попадают в начало очереди. В общем случае желательно, чтобы множество потоков потребляли задания из очереди одновременно, что позволяет выполнять несколько заданий либо параллельно, либо на разных процессорах. Для повышения эффективности очередь обычно имеет форму многопотоковой очереди (MPMC Queue) и, как правило, представляет собой конструкцию без блокировок, что позволяет повысить пропускную способность за счет снижения накладных расходов на синхронизацию доступа к очереди при выполнении операций push/pop. Создание эффективной очереди MPMC без блокировок - задача нетривиальная и может быть чревата возникновением тонких условий гонки, если она не реализована со строгим вниманием к деталям. К счастью, существует множество реализаций MPMC-очередей без блокировок, которые широко доступны. Некоторые из них более эффективны, чем другие, и у каждой есть свои недостатки и компромиссы, такие как снижение пропускной способности при сильной конкуренции, слабое упорядочивание (задачи могут быть потреблены в порядке, отличном от того, в котором они были произведены), очереди с фиксированной емкостью, очереди с динамической емкостью и т.д.
https://www.buildingcpp.com/work_contract.htm
#cpp #programming
👉 @cpp_lib
Пять продвинутых техник инициализации в 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
До 5% экономии с топливной картой ЛУКОЙЛ
А ещё топливные карты ЛУКОЙЛ - это комплексное решение для вашего бизнеса. Оно включает в себя не только учет расходов, но и дополнительные услуги и цифровые сервисы, которые доступны только корпоративным клиентам.
Пользуйтесь выгодными предложениями для эффективного управления бизнесом!
Узнать больше
#реклама
auto.lukoil.ru
О рекламодателе
Курс «Python-разработчик» от Яндекса. Начните с нуля.
Программа 2023 года.
Диплом о переподготовке и помощь с поиском работы.
Рассрочка.
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
Почему я программирую на С/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
Передача параметров в потоке в зависимости от диапазонов
https://tristanbrindle.com/posts/parameter-passing-in-flux-vs-ranges
#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
Язык Си++, 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