Обложка канала

Библиотека C/C++ разработчика

14677 @cppproglib

Полезные материалы по всему, что может быть полезно плюсовику/сишнику.

  • Библиотека C/C++ разработчика

    execution policy для параллельных алгоритмов Execution policy в C++ — это новшество, введенное в стандарте языка C++17. Это механизм, который позволяет выбрать, как именно должны выполняться алгоритмы в стандартной библиотеке: последовательно или параллельно. Существуют три варианта execution policy: — seq: выполняет алгоритм последовательно. — par: выполняет алгоритм параллельно, используя все доступные ядра процессора. — par_unseq: выполняет алгоритм параллельно и может использовать неупорядоченное исполнение. Execution policy может быть использован в комбинации с многими алгоритмами в стандартной библиотеке, такими как std::for_each, std::transform, std::reduce и другими. Например, код выше выполняет алгоритм std::for_each параллельно.
  • Библиотека C/C++ разработчика

    В чем разница между git fetch и git pull? Разница между этими командами заключается в том, что когда вы используете команду git fetch, Git извлекает последние изменения из удаленного репозитория в ваш локальный репозиторий, но оставляет эти изменения в отдельной ветке git origin. А команда git pull извлекает и интегрирует (скачивает и сливает) последние изменения из удаленного репозитория в вашу текущую ветку работы.
  • Библиотека C/C++ разработчика

    «Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем: 👉Data Science 👉Frontend 👉мобильная разработка Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴 Подробнее о вакансии и форма для отклика — по ссылке. Ждем вас в команде!
  • Реклама

  • Библиотека C/C++ разработчика

    std::tie std::tie — это функция, которая создает кортеж ссылок на lvalue из своих аргументов или экземпляров std::ignore. Она может использоваться для распаковки кортежей или пары значений в отдельные переменные. Например, если у вас есть функция, которая возвращает std::pair или std::tuple, вы можете использовать std::tie, чтобы присвоить значения этого кортежа отдельным переменным. В этом примере мы используем std::tie для распаковки результата вызова set_of_s.insert(value) в две переменные: итератор iter и логическую переменную inserted. Это позволяет нам проверить, было ли значение успешно вставлено в набор. #код
  • Библиотека C/C++ разработчика

    Представьте, что вы за час можете научиться чему угодно — что бы это было? #интерактив
  • Библиотека C/C++ разработчика

    Передача адреса переменной в функцию в Си По умолчанию параметры передаются по значению, то есть копируются. В десятиминутном видео разобраны основы этой логики. Смотреть видео
  • Библиотека C/C++ разработчика

    Как работает оператор new в C++ и почему используется именно этот оператор для выделения динамической памяти? Оператор new используется в C++ для выделения динамической памяти (heap memory), которая выделяется во время выполнения программы. При его вызове, сначала выделяется необходимое количество памяти из операционной системы, а затем возвращается указатель на эту область памяти. При исполнении оператора new происходит следующее: 1. Сначала он выделяет память в размере, указанном в аргументе оператора или размере типа данных, на который указывает указатель. 2. Затем он вызывает конструктор для создания объекта в выделенной области памяти. 3. Возвращает указатель на выделенную память. В данном примере оператор new выделяет память под объект класса MyClass и вызывает его конструктор. Оператор delete используется для освобождения ранее выделенной памяти. #вопросы_с_собеседований
  • Библиотека C/C++ разработчика

    move constructor Move-конструктор — это специальный конструктор, который позволяет эффективно перемещать ресурсы из одного объекта в другой, без необходимости копирования данных. Он используется для реализации семантики перемещения (move semantics) и оптимизации работы с временными объектами. Move-конструктор принимает rvalue ссылку (&&) на объект, который будет перемещен, и выполняет простое копирование указателей на данные, а не их фактическое копирование. Использование move-конструктора позволяет избежать лишних копирований данных и повысить производительность при работе с большими или ресурсоемкими объектами. #код
  • Библиотека C/C++ разработчика

    Про какой учебный проект вы рассказывали/показывали его на первом собеседовании? #интерактив
  • Библиотека C/C++ разработчика

    Очередной #дайджест по C++: ✍️ Самый быстрый и безопасный PNG декодер в мире Декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng, C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust. ✍️ Rust моей мечты — несостоявшийся язык Пост о Rust и его разнице с С++. ✍️ Работа с void* в стиле C++ Передача указателя на набор полей примитивных типов, расположенных в определённом порядке, — широко используемый паттерн. Так передаются указатели на структуры и объекты, массивы, файловые и сетевые буферы, данные в общей памяти и специальные типы (к примеру, массивы виртуальных функций). ✍️ Как считать токены для GPT-3/GPT-4 Автор разработал возможность подсчета токенов на С++, которую разработчики реализовали только для JS и Python. ✍️ С++ как скриптовый язык на примере простой игры Немного про игровые движки и динамическое связывание.
  • Библиотека C/C++ разработчика

    #квиз
  • Библиотека C/C++ разработчика

    std::atomic_flag::wait std::atomic_flag::wait — это метод класса std::atomic_flag, который блокирует выполнение потока, пока атомарный флаг не будет равен заданному значению. В этом примере есть два потока — t1 и t2, каждый из которых ждет, пока атомарный флаг flag не будет очищен. Когда flag очищается, соответствующий поток переходит в режим выполнения, выводя сообщение "Thread executing". Результатом работы данной программы является вывод сообщений "Thread waiting" до изменения flag на false и сообщений "Thread executing" после его изменения. #код
  • Библиотека C/C++ разработчика

    📖 ТОП-10 книг, без которых не обойтись ни одному программисту Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы. 🔗 Основной сайт 🔗 Зеркало
  • Библиотека C/C++ разработчика

    Различие локальной переменной и поля класса с одинаковым именем Указатель this может быть полезен в случае, когда локальная переменная в методе имеет то же самое имя, что и поле объекта: void set(int x) { this->x = x; } Здесь в методе set мы присваиваем полю класса x значение локальной переменной this. Чтобы различить поле класса x и локальную переменную с тем же именем, мы используем запись this->x при обращении к полю класса.
  • Библиотека C/C++ разработчика

    Как вывести в консоль числа от 1 до 100 без рекурсии и циклов? В этой программе используется концепция метапрограммирования шаблонов. #код
  • Реклама

  • Библиотека C/C++ разработчика

    Курс «Алгоритмы и структуры данных» для разработчиков, которые хотят подготовиться к собеседованию в технологическую компанию или продвинуться по карьере. 🔹Подробная программа – https://proglib.io/w/acc674d9 ▪️ бессрочный доступ ▪️ 47 видеолекций ▪️ 150 практических заданий ▪️ бессрочная поддержка в чате студентов ▪️развернутая обратная связь по всем домашним заданиям Стоимость со скидкой 33% всего 24 190 рублей 🫶 Актуально до 31 июля. НАЧАТЬ С ДЕМО-ДОСТУПА Приходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
  • Библиотека C/C++ разработчика

    Очередной #дайджест по C++: ✍️ C++23: статический оператор () и статический оператор [] В этой статье рассмотрели две новые функции C++23. Теперь язык позволяет оператору вызова (operator()) и оператору подписки (operator[]) быть статическими. Давайте перейдем к деталям. ✍️ Nubbing-списки в (consteval) C++ Как современный C++ справляется с, казалось бы, простой задачей: удалением повторяющихся элементов списка? ✍️ Введение в программирование на C++ для инженеров, обзор книги ✍️ CppCast: Безопасность, защищенность и современный C++, с Бьярном Страуструпом Бьерн Страуструп присоединяется к Филу и Тимуру. Бьерн рассказывает о безопасности в C++ через профили, а также модули и концепции — и предвидит, что еще будет дальше. ✍️ Без CRT в 2023 году: советы и рекомендации Любопытная статья от опытного программиста.
  • Библиотека C/C++ разработчика

    memmove Функция memmove используется для копирования блока памяти из одного места в другое. Она объявлена в заголовочном файле . Она принимает аргументы типа void * и const void *, что позволяет ей работать с любыми типами данных. Она просто копирует указанное количество байтов из исходного буфера в целевой. memmove может обрабатывать перекрывающиеся буферы. В отличие от memcpy, которая просто копирует данные из одного места в другое, memmove может безопасно перемещать данные, даже если исходный и целевой буферы перекрываются. Функция memmove может быть полезна для удаления элементов из массива. Например, если вы хотите удалить элемент из массива и сдвинуть оставшиеся элементы влево, вы можете использовать memmove для перемещения данных в массиве. #код