Библиотека C/C++ разработчика | cpp, boost, qt
20.5K subscribers
1.71K photos
46 videos
16 files
3.9K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🌟 std::expected (С++23)

std::expected — это механизм, который появился в библиотеке C++23 и предназначен для работы с функциями, которые могут завершиться не только успешно, но и с ошибкой. Он предоставляет альтернативный подход к обработке ошибок, который отличается от использования исключений или статусных кодов

📘 Ссылки
На грани между exceptions и std::expected
Using std::expected from C++23
std::expected
🔥23👍41
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»

🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/cfe3ce33

На вводной части вас ждут:

▪️ Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

▪️ Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

▪️ Практические задания после лекций

▪️ Ссылки на дополнительные материалы для самостоятельного изучения

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/cfe3ce33
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема «Most vexing parse»

Most vexing parse — это ситуация в языке программирования C++, когда компилятор интерпретирует объявление функции вместо объявления объекта, когда это может быть неочевидным для программиста

Проблема возникает из-за того, что определение функции может быть легко спутано с объявлением объекта, который использует конструктор с пустыми скобками

Чтобы избежать проблемы most vexing parse, можно использовать универсальную инициализацию (uniform initialization) с помощью фигурных скобок {}
👍17🔥4😁2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям

🤦‍♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.

📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?

👉 Поделиться историей
🥰21🔥1
Uniform initialization

В С++ — это способ инициализации объектов с помощью фигурных скобок {}. Появившийся ещё в C++11. Позволяет инициализировать объекты без необходимости использования разных синтаксических конструкций в зависимости от типа данных

💡Плюсы
• Позволяет использовать один и тот же синтаксис для всех типов данных
• Более ясный и единообразный синтаксис
• Более строгая проверка типов во время компиляции
• Поддержка инициализации списками
• Позволяет передавать произвольное количество значений для инициализации объекта
👍20❤‍🔥1
Остаться или уйти? Оптимальный срок работы на одном месте

Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?

Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры

👉 Опрос по ссылке
🤔21👍1
std::initializer_list

std::initializer_list — это стандартный контейнер в C++, который представляет собой список значений одного типа. Он используется для передачи произвольного количества значений в функции и конструкторы классов

📋 Зачем это нужно?

std::initializer_list позволяет удобно инициализировать контейнеры и другие объекты с произвольным количеством значений без явного указания размера или создания временных массивов
👍12🥰1
🛠️ Inline assembly

Inline assembly — инструмент, который позволяет встраивать непосредственно ассемблерные инструкции в код. Это полезно, когда требуется оптимизировать производительность или реализовать операции, которые не могут быть выполнены с помощью стандартных средств языка

🌐 Ссылки

Inline assembly
Using Inline Assembly in C/C++
👍153
🛠️ Что такое C++ Streams?

В контексте C++, потоки (streams) представляют собой механизм для работы с вводом и выводом данных. Они обеспечивают абстракцию над различными источниками и приемниками данных, такими как консоль, файлы и строки, позволяя программистам работать с ними с помощью общего интерфейса

Основные реализации потоков в C++
std::cin и std::cout: Это стандартные потоки ввода и вывода, которые обычно используются для взаимодействия с консолью
std::ifstream и std::ofstream: Это классы потоков для работы с файлами
std::stringstream: Этот класс потока позволяет работать с данными как с потоком, хранящимся в строке. Он может использоваться для выполнения операций ввода-вывода с помощью строкового представления данных

Преимущества использования потоков
• Удобство в использовании
• Возможность абстрагировать ввод-вывод от конкретных источников и приемников данных
• Поддержку различных типов данных
👍231🥰1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👍41
🎮👨‍💻 15 игр, которые научат программированию

А также помогут подготовиться к техническому собеседованию, развить алгоритмическое мышление и просто провести свободное время с пользой

👉 Читать статью
🔥42
😈 Даркнет: как устроен теневой рынок труда

Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.

🔗 Читать статью
🔗 Зеркало
2👾2😁1
🧑‍💻 std::async и std::future

std::async и std::future — классы, которые необходимы для асинхронного вызова функций

📚 std::async — позволяет запускать функции асинхронно

📚 std::future — способ получения результата, после выполнения асинхронной функции

🛠 Плюсы
• Можно не использовать сторонние библиотеки (например Boost.Asio или Qt)
👍22🥱5
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Как нестандартно войти в АйТи

Многие IT-специалисты приходят в эту сферу нестандартным путем — кто-то начинал как самоучка, а кто-то стал программистом случайно. Был ли у вас необычный старт карьеры в IT?

Расскажите нам свою историю! Ваш опыт может вдохновить тех, кто мечтает о переменах, но пока не решается начать.

❤️ С нетерпением ждем ваших комментариев!
🔵 Всё, что вы хотели знать о Serverless

Serverless — это подход, позволяющий не задумываться об эксплуатации инфраструктуры и оплачивать только потреблённые ресурсы. О преимуществах и особенностях бессерверного подхода, типовых сценариях для serverless-архитектуры и как писать код по-новому читайте в статьях Yandex Cloud:

Всё, что вы хотели знать о бессерверных технологиях
Запускаем контейнерные приложения в Yandex Serverless Containers
Разграничение доступа к API с помощью Yandex API Gateway
👍1
Функциональное программирование

Тема функционального программирования не новая для C++, но крайне полезная. Лямбда-функции и функторы часто встречаются в коде и хорошо бы с ними уметь работать без обращения к гуглу и лишней головной боли. Да и на собеседования не редко попадаются вопросы на эту тему

На youtube канале C++ User Group как раз вышло новое видео посвящённое данной теме

Элементы функционального программирования в языке C++
👍12
🧑‍💻 dlib C++ library

Dlib — это набор инструментов на C++, содержащий алгоритмы машинного обучения и инструменты для создания сложного программного обеспечения решающего широкий спектр задач, связанных с компьютерным зрением, обработкой изображений, обнаружением объектов, распознаванием лиц и многим другим

👉 Github
🔥10👍3❤‍🔥1
Для чего нужен extern ''C''?

extern ''C'' — это спецификатор языка C++, который указывает компилятору, что определения функций или переменных должны использовать соглашение о вызове и механизм именования, который характерен для языка C. Это означает, что имя функции или переменной не будет изменено (не будет подвергнуто name mangling) компилятором C++, и оно будет доступно для использования в коде на языке C

Основное применение
• extern ''C'' используется при написании кода, который должен быть совместимым с C и C++. В основном для написания внешнего API к библеотеки, чтобы можно было пользоваться ей из разных языков программирования (всех, которые поддерживают вызов функций языка C)

Ограничения

• extern ''C'' может быть только на уровне пространства имён. Внутри классов использовать не получится
👍13