Senior C++ Developer
Изучаем C++.
Что нового в GitVerse
На онлайн-презентации «GitVerse: открой вселенную кода» СберТех рассказал об обновлениях платформы. Cреди них – CI/CD-инструменты, которые позволят ускорить и упростить разработку. Делимся подробностями:
▪️ Инструменты помогут автоматизировать сборку кода и процессы поставки. Можно воспользоваться уже написанными скриптами сборки и перенести свои проекты с Git-репозиториев в один клик.
▪️ Технология оповещения о новых событиях на сервере (вебхуки) позволит реализовать еще больше сценариев автоматизации.
▪️ Появилась возможность вызывать сторонние сервисы через API по событиям в GitVerse. Например, при определенных событиях в репозитории можно запустить сторонний сборочный конвейер или отправить уведомление в мессенджер.
Регистрируйтесь на GitVerse и протестируйте сами 😉
Функция std::pop_heap
Функция std::pop_heap
в библиотеке C++ STL предназначена для извлечения наибольшего элемента из кучи (heap) и перемещения его в конец диапазона. Алгоритм работает за логарифмическое время (O(log N)), что делает его эффективным для работы с большими массивами.
#для_продвинутых
Библиотека Eigen
Eigen — это библиотека с открытым исходным кодом для языка программирования C++, предназначенная для выполнения операций линейной алгебры.
Она написана с использованием шаблонов и обеспечивает эффективный и удобный интерфейс для работы с векторами, матрицами и другими алгебраическими структурами.
#для_начинающих
VTK
VTK (Visualization Toolkit) — это открытая кроссплатформенная библиотека, предназначенная для 3D-моделирования, обработки изображений и прикладной визуализации. Она написана на C++, но также имеет модули на Python, Java и Tcl/Tk.
#для_продвинутых
🔥 Пройди тест по Java и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене до 21.04 + получишь доступ к записям открытых уроков курса курса
👉 ПРОЙТИ ТЕСТ:
https://otus.pw/tihU/?erid=LjN8K8ggQ
Spdlog
Spdlog — это быстрая, простая в использовании и удобная библиотека журналирования для C++. Она имеет множество функций, делающих ее идеальным выбором для различных приложений.
Spdlog является одной из самых быстрых библиотек журналирования для C++. Также имеет простой и понятный API. Spdlog предлагает множество функций, делающих ее удобной в использовании, таких как автоматическое форматирование сообщений, цветовая кодировка и многое другое.
#для_продвинутых
Фреймворк Catch2
Catch2 — это современный фреймворк для модульного тестирования на C++, простой, но при этом обладающий всеми необходимыми функциями.
Он подходит как для TDD (разработки через тестирование), так и для BDD (поведенческого тестирования).
#для_начинающих
🫵 Кто сказал, что управлять памятью в Rust сложно?
Приглашаем 22 апреля в 20:00 мск на бесплатный вебинар «Управление памятью в Rust» от Отус.
Вебинар является бесплатной частью полноценного онлайн-курса «Rust Developer. Professional».
➡️ Регистрация на вебинар: https://otus.pw/xWyH/?erid=LjN8KCTct
На вебинаре мы рассмотрим:
✔️ принцип владения, позволяющий уничтожать объекты без сборщика мусора;
✔️ принцип заимствования, гарантирующий корректное использование ссылок;
✔️ зачем в язык были добавлены явные лайфтаймы;
✔️ механизм для описания кастомной логики деинициализации объектов.
Записывайтесь сейчас, а мы потом напомним. Участие бесплатно.
Библиотека Fast Light Toolkit
Fast Light Toolkit (FLTK) — это кроссплатформенный инструментарий для создания графических интерфейсов (GUI) на языке программирования C++. Она поддерживает такие операционные системы, как UNIX/Linux(X11), Microsoft Windows и macOS.
FLTK предлагает современные функции для создания GUI, при этом оставаясь компактной и не перегруженной лишними компонентами. Библиотека также поддерживает 3D-графику через OpenGL и его встроенную эмуляцию GLUT.
#для_продвинутых
std::pairstd::pair
— это шаблон класса, который позволяет хранить два значения одного или разных типов в одной переменной.
Для объявления переменной типа std::pair
используется следующий синтаксис:
std::pair<Тип1, Тип2> имя_переменной;
где:
Тип1
— тип первого значенияТип2
— тип второго значенияимя_переменной
— имя переменной#для_продвинутых
std::reduce
Функция std::reduce
в C++ используется для объединения элементов последовательности в одно значение. std::reduce
работает следующим образом:
1. Она начинается с первого элемента последовательности.
2. Она применяет функцию к первому элементу и к начальному значению.
3. Она сохраняет результат.
4. Она повторяет эти шаги для каждого последующего элемента последовательности.
В результате функция std::reduce
возвращает значение, которое является объединением всех элементов последовательности.
#для_продвинутых
std::partial_sum()
Функция std::partial_sum()
из библиотеки стандартных алгоритмов языка C++ вычисляет частичные суммы элементов в диапазоне. Частичная сумма — это сумма элементов, разделенная на несколько частей.
Функция вычисляет частичные суммы элементов в диапазоне от first
до last
и записывает их в диапазон, начиная с d_first
. При этом используется указанный в качестве первого аргумента оператор сложения. Если в качестве первого аргумента не указан оператор, то используется оператор сложения по умолчанию.
#для_продвинутых
Конференция C++ Russia 2024
🌐 24 мая — онлайн
📍 2–3 июня — большой офлайн в Москве
В программе — десятки докладов о разных аспектах C++ разработки. Полученные знания пригодятся в реальной работе и помогут расширить кругозор. После каждого доклада пройдут дискуссии при участии спикеров и экспертов индустрии.
Темы конференции: производительность, возможности новых стандартов, GameDev, инструменты, компиляторы, C++ на практике, многопоточность.
Выступают специалисты из Kaspersky, Яндекс, VK и других технологических компаний.
Приходите узнать о новых решениях и инструментах, пообщаться с коллегами по цеху и просто провести время с удовольствием.
Билеты можно купить за счет компании. Для тех, кто покупает билеты сам, у нас есть промокод на скидку 10%: SENIORCPP
Реклама. ООО "Вайлдкард". ИНН 7801718607
Функция std::find_end
Функция std::find_end
в С++ используется для поиска последнего вхождения подпоследовательности элементов в заданном диапазоне. Она работает с итераторами, что делает её универсальной для различных контейнеров, таких как массивы, векторы, списки и т.д.
Синтаксис:
template < class ForwardIterator1, class ForwardIterator2 >
ForwardIterator1 find_end ( ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2 );
#для_продвинутых
Функция std::count
Функция std::count
используется для подсчета количества элементов в диапазоне, которые совпадают с заданным значением. Она работает с итераторами, что позволяет использовать ее с различными типами контейнеров, таких как массивы, векторы, списки и т.д.
#для_начинающих
🚀 Участвуй в True Tech Hack от МТС и поборись за общий призовой фонд в 1 500 000 рублей. Регистрируйся.
Приглашаем разработчиков, специалистов по Data Science, менеджеров по продукту, дизайнеров. Соревноваться предстоит в одном из двух треков, чтобы улучшить жизнь людей с особыми потребностями.
🏠 Трек 1. Улучшение клиентского опыта витрины МТС Live для пользователей с особыми потребностями
⭐ Трек 2. Разработка голосового управления для МТС Финтех на основе искусственного интеллекта для людей с ограниченными возможностями
Как пройдет True Tech Hack:
🔸 26 апреля – открытие хакатона и Q&A-сессия
🔸 27 апреля-12 мая – чек-поинты с экспертами
🔸 12 мая – окончание приема проектов
🔸 14 мая – полуфинал, защита лучших решений и объявление финалистов
🔸 17 мая – финал в Москве
True Tech Hack – твой шанс получить новый опыт, выиграть приз и сделать наш мир доступней и удобней для всех. Регистрируйся на хакатон до 25 апреля по ссылке.
Функция std::atomic_store
Функция std::atomic_store
используется для атомарного изменения значения атомарной переменной. Это означает, что изменение значения происходит мгновенно и не может быть прервано другими потоками.
В примере на картинке функция atomic_store
используется для атомарного увеличения значения счетчика counter на 1
. Функция atomic_load
используется для получения нового значения счетчика.
#для_продвинутых
😎Хотите освоить систему контроля версий git и улучшить свои навыки разработки на С#?
💪Приходите на бесплатный практический урок «Система контроля версий git» от OTUS. Спикер — опытный Fullstack-разработчик на стеке C#(.NET) и Javascript (React).
👨🏫На вебинаре вы изучите основные понятия и операции git, которые помогут вам эффективно управлять версиями вашего кода и начать успешную карьеру в программировании! Занятие подойдет новичкам и продолжающим разработчикам на С#.
🥉Урок пройдет 23 апреля в 20:00 мск и будет приурочен к старту большого курса «Специализация C# Developer». После вебинара вы получите специальную цену на обучение и персональную консультацию от наших менеджеров!
💯Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://clck.ru/3A7H7M
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
#вопросы_с_собеседований
Как можно использовать лямбда-выражения в C++ для создания анонимных блоков кода, которые могут изменять переменные захваченного контекста без изменения сигнатуры лямбды?
В C++ можно использовать лямбда-выражения с захватом по ссылке, чтобы анонимный блок кода мог изменять переменные из внешнего контекста. Захват по ссылке указывается с помощью символа & в списке захвата лямбды. Это позволяет лямбде изменять значения переменных, не меняя при этом сигнатуру лямбды.
В этом примере лямбда modifyX захватывает переменную x по ссылке и изменяет её значение. Такой подход позволяет лямбдам влиять на состояние переменных в области видимости, где они были определены, без необходимости изменять сигнатуру лямбды.
std::consumestd::consume
— это функция, предназначенная для потребления значения из атомарной переменной. Она гарантирует, что все изменения, сделанные в атомарной переменной до вызова std::consume, будут видны в потоке, который ее вызывает.
Синтаксис:
void std::consume(std::atomic<T>& var);
#для_продвинутых