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

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

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

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
🎥 Что спросить у работодателя на IT интервью

Чек-лист вопросов, чтобы не забыть спросить о чем-то своего будущего работодателя.

00:22 — Какие цели у команды / проекта / компании
00:39 — Что сделали интересного за несколько лет
01:05 — Какие у меня будут цели и задачи
01:30 — Какой размер и состав команды
01:57 — Какие языки и технологии используются
02:08 — Как устроены процессы в команде
02:33 — Что с кодом
02:53 — Какие у меня будут перспективы роста
03:04 — Какие сейчас есть проблемы
03:28 — Почему ищите человека на эту вакансию
Какая разница между структурой и классом?

Главное отличие заключается в том, что структуры по умолчанию имеют public доступ к своим полям, в то время как классы по умолчанию имеют private доступ.

— Структуры обычно используются для простых объектных типов данных, в то время как классы — для более сложных объектов.
— Структуры копируются по значению, а классы — по ссылке. Это означает, что при копировании структуры создается новый объект, а при копировании класса копируется указатель на объект.
— Структуры не поддерживают наследование, в отличие от классов.

В целом, структуры чаще используются для простых данных, а классы — для представления более сложных сущностей и их взаимодействия.
Выбор между ними зависит от конкретной задачи и требований к программе.
std::find_if

std::find_if — это стандартный алгоритм, предоставляемый библиотекой . Этот алгоритм предназначен для поиска первого элемента в заданном диапазоне, который удовлетворяет заданному условию, определенному предикатом.

Вот общий формат std::find_if:

#include

template
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p);

first и last представляют диапазон элементов для поиска. first указывает на начало диапазона, а last указывает за его пределы.
p — это унарный предикат, то есть функция, принимающая один аргумент и возвращающая true, если элемент удовлетворяет условию, и false в противном случае.
🤔 Очередной #дайджест по С++

Итоги развития экосистемы C++ в 2023 году — рост C++20, широкое внедрение инструментов на базе Clang, ИИ завоевывает доверие разработчиков и многое другое

Анализ приложений на C++ для оптимизации производительности — введение в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor

Как я поднял свой сервер без возможности выставить для него статический IP адрес — как обойти провайдерский dhcp с помощью бота и прочие развлечения

Dependency Injection контейнеры .NET, допускающие полиморфное поведение — когда при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения

Расширяемая архитектура RISC-V и Syntacore SW Tools — знакомство с открытой расширяемой архитектурой RISC-V на примере ядер Syntacore и с особенностями оптимизации и разработки программ под RISC-V
Какой оператор используется для определения члена класса вне определения класса?
Anonymous Quiz
14%
->
3%
>>
11%
.
73%
::
Что такое SIMD?

SIMD (Single Instruction, Multiple Data) инструкции представляют собой набор команд и возможностей, предоставляемых аппаратным средством процессора, которые позволяют выполнять одну операцию над несколькими элементами данных одновременно.

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

В качестве параметров передаются два числа. При делении первого параметра на второй будет получен остаток, возможно, нулевой. Верните это значение.

Примеры:
Remainder(3, 4) ➞ 3
Remainder(-9, 45) ➞ -9
Remainder(5, 5) ➞ 0

Пишите ваши варианты в комментариях, а ответ будет ниже через 30 минут.
public class Program
{
public static int Remainder(int x, int y) => x%y;
}
🤖 Итоги недели в мире ИИ и обзоры новых сервисов

Мы написали статью на VC, которая основана на очередном выпуске нашей рассылки про последние новости и тенденции в мире ИИ. Залетайте и читайте!

👇Ниже — мини-подборка из статьи 👇

📰 Новости

▫️ OpenAI объявила о запуске долгожданного магазина кастомных чат-ботов.
▫️ В Пасадене (штат Калифорния) открывается первая закусочная CaliExpress by Flippy, полностью управляемая ИИ.
▫️ NVIDIA выпустила модель для распознавания речи Parakeet, которая по всем показателям превосходит OpenAI Whisper.
▫️ Использование ИИ в совместном научном проекте Microsoft и Тихоокеанской северо-западной национальной лаборатории в течение недели помогло определить новый элемент, который поможет снизить на 70% использование лития в батареях. Без ИИ такое исследование заняло бы по меньшей мере 20 лет.
▫️ Компания ByteDance выпустила новую модель MagicVideo-V2 для генерации видео.

🛠 Инструменты

◾️ Auto Wiki — генерирует вики-документацию для GitHub репозиториев.
◾️ Code to Flow — визуализирует, анализирует и объясняет код, написанный на всех популярных языках и фреймворках.
◾️ Concepto — платформа для создания прототипов веб-приложений.
◾️ Afforai — выполняет суммаризацию, перевод и поиск по множеству документов.
◾️ Corgea — исправляет уязвимые фрагменты кода.
◾️ Jan — опенсорсный оффлайновый чат-бот.
◾️ Plus AI — плагин для Google Slides: делает профессиональные презентации, персональные и командные дашборды, любые отчеты.

🤙 Сделай сам

🔸 WikiChat — опенсорсный инструмент для коррекции галлюцинаций с помощью информации из Википедии.
🔸 Подробная шпаргалка и советы по созданию продвинутых RAG.
🔸 OpenVoice — опенсорный инструмент для мгновенного клонирования голоса.

🎓 Туториалы

🔹 Туториал по работе с новым API Query Pipelines показывает примеры создания простых линейных цепочек и сложных ациклических графов из модулей LlamaIndex.
🔹 Туториал по объединению LLM с помощью mergekit детально разбирает 4 основных метода объединения моделей.

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
Оператор назначения для метки goto идентифицируется какой меткой?
Anonymous Quiz
5%
*
15%
@
71%
:
8%
$
🤔 #дайджест познавательных роликов по С++

🔸 C++ базовый курс MIPT — лекции по программированию на C++ в бакалавриате МФТИ

🔸 Перепрограммируйте свой мозг с помощью test driven на C++ — как работать, как совершенствоваться и как повысить производительность

🔸 Масштабируемая векторизация в RISCV — про основы векторизации вообще и на примере простой задачи про фиксированную векторизацию на интринсиках AVX

🔸 Семантические процессы в C++ — описание взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка

🔸 TDD Revisited — ключевые ошибки разработки, основанные на тестировании и набор принципов, которые позволяют писать хорошие модульные тесты
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы

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

👉 Читать статью
👉 Часть 1
👉 Часть 2
Библиотечный метод

Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, не нужно ничего выводить.

Формат входных данных:
На первой строке дано целое число n (1 ≤ n ≤ 100) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.

Формат выходных данных:
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
std::find_if

std::find_if — это стандартный алгоритм, предоставляемый библиотекой <algorithm>. Этот алгоритм предназначен для поиска первого элемента в заданном диапазоне, который удовлетворяет заданному условию, определенному предикатом.

Вот общий формат std::find_if:

#include <algorithm>

template<class InputIt, class UnaryPredicate>
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p);


first и last представляют диапазон элементов для поиска. first указывает на начало диапазона, а last указывает за его пределы.
p — это унарный предикат, то есть функция, принимающая один аргумент и возвращающая true, если элемент удовлетворяет условию, и false в противном случае.
📚Smaller C: Lean Code for Small Machines (2021)

✍️Автор: Marc Loy

📃Страниц: 314

Для людей, которые хотят использовать самые маленькие микроконтроллеры или добиться максимальной производительности от более крупных, язык Си по-прежнему является лучшим вариантом. Эта практическая книга дает прочное основание знаний по Cи для всех, кто имеет дело с программированием микроконтроллеров. Вы изучите множество способов, с помощью которых Cи позволяет разработчикам и производителям добиваться больших результатов с помощью крошечных устройств.

Ссылка на книгу
🤸🤸‍♂️ Механизм перезапускаемых последовательностей (Rseq) при работе с TCMalloc

В TCMalloc кэши для отдельных ядер процессора реализуются при помощи перезапускаемых последовательностей man rseq(2) под Linux. При помощи перезапускаемых последовательностей можно вплоть до завершения выполнять область памяти (атомарно, относительно других потоков, выполняющихся на том же ядре процессора), либо выходить из этого процесса, если ядро прервёт этот процесс, например, вытеснив его или прервавшись на обработку сигнала.

Если вы хотите организовать перезапуск системы при миграции с ядра на ядро или при вытеснении процесса, то наиболее общий случай такой операции можно оптимизировать (не переносить с ядра на ядро тот процесс, который уже выполняется), избегая атомарных операций. Можно оптимизировать и более редкий случай — вытеснение как таковое. В результате такого компромисса нужно обеспечить, чтобы на всех путях выполнения нашего кода поддерживались такие операции перезапуска. Вся последовательность, кроме окончательного сохранения в памяти, когда изменение фиксируется, должна быть приспособлена к перезапуску.

Продолжить

#туториал