Telegram Web
#вопросы_с_собеседований
Как работает механизм перегрузки операторов в C++ и какие ограничения существуют при его использовании?


В C++, перегрузка операторов позволяет программистам определять поведение стандартных операторов (например, +, -, *, /) для пользовательских типов данных. Это делается путем определения функций или методов класса с специальным именем: operatorX, где X - это оператор, который нужно перегрузить. Однако существуют ограничения: нельзя перегружать операторы для встроенных типов данных (только если одним из операндов является пользовательский тип), нельзя создавать новые операторы, и некоторые операторы (например, ?:, .) не подлежат перегрузке. Перегрузка операторов должна использоваться с осторожностью, чтобы не нарушить интуитивные ожидания от работы этих операторов.
Функция std::count

Функция std::count используется для подсчета количества элементов в диапазоне, которые совпадают с заданным значением. Она работает с итераторами, что позволяет использовать ее с различными типами контейнеров, таких как массивы, векторы, списки и т.д.

#для_начинающих
Функция std::find_end

Функция std::find_end в С++ используется для поиска последнего вхождения подпоследовательности элементов в заданном диапазоне. Она работает с итераторами, что делает её универсальной для различных контейнеров, таких как массивы, векторы, списки и т.д.

Синтаксис:
template < class ForwardIterator1, class ForwardIterator2 >
ForwardIterator1 find_end ( ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2 );


#для_продвинутых
Функция std::atomic_store

Функция std::atomic_store используется для атомарного изменения значения атомарной переменной. Это означает, что изменение значения происходит мгновенно и не может быть прервано другими потоками.

В примере на картинке функция atomic_store используется для атомарного увеличения значения счетчика counter на 1. Функция atomic_load используется для получения нового значения счетчика.

#для_продвинутых
#вопросы_с_собеседований
Как можно использовать лямбда-выражения в C++ для создания анонимных блоков кода, которые могут изменять переменные захваченного контекста без изменения сигнатуры лямбды?


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

В этом примере лямбда modifyX захватывает переменную x по ссылке и изменяет её значение. Такой подход позволяет лямбдам влиять на состояние переменных в области видимости, где они были определены, без необходимости изменять сигнатуру лямбды.
Функция std::stold

Функция std::stold из стандартной библиотеки C++ преобразует строку, представляющую десятичное число с плавающей запятой, в тип long double.

Возвращаемое значение:
Возвращает значение типа long double, полученное из преобразованной строки.

#для_начинающих
This media is not supported in your browser
VIEW IN TELEGRAM
⚠️ WMI — это не только удобный инструмент администратора, но и один из самых скрытных векторов атак в Windows.

🔎 На открытом вебинаре вы узнаете, как работают такие атаки и как вовремя их выявлять.

Разберем:

- Что такое WMI и как он применяется в администрировании.
- Почему WMI так любят злоумышленники.
- Какие методы мониторинга помогают обнаружить скрытные атаки.

📅 Урок пройдёт 6 октября в 20:00 МСК в преддверии старта курса «Reverse Engineering». Присоединяюсь и получите скидку на обучение: https://otus.pw/crgG/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Функция minmax_element

Находит самый маленький и самый большой элемент в диапазоне [first, last).
Пример UB (Undefined behavior)

Ярким примером UB и ошибочного кода является повторное использование (в том числе повторное изменение) изменяемой переменной при вычислении выражения, когда относительный порядок вычисления термов не определен (то же касается фактических параметров функции в точке вызова).
🔥 Qt остаётся одним из самых востребованных инструментов для создания кросс-платформенных приложений. Хотите научиться писать программы, которые действительно работают и востребованы в бизнесе?

Приглашаем на бесплатный открытый урок «Пишем приложение органайзер на Qt»

🗓 6 октября, в 20:00 мск.
🆓 Бесплатно. Урок в рамках старта курса «Разработка прикладного ПО на Qt и ОС «Аврора»».
Регистрация: https://otus.pw/hSko/

✔️ Разберем процесс создания приложения-органайзера с нуля, используя популярный фреймворк Qt.
✔️ Вы узнаете, как разрабатывать пользовательский интерфейс с помощью основных инструментов Qt.
✔️ В ходе занятия вы получите практические навыки работы с сигналами и слотами, проектированием архитектуры приложения, подбором структуры данных и т.д..

🔗 Ссылка на регистрацию: https://otus.pw/hSko/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Что будет выведено и почему?

Ответ:
4294967271, предполагая 32-битные целые числа.

Почему так происходит?

Существует иерархия: long double, double, float, unsigned long int, long int, unsigned int, int. И когда два операнда определены как 25u (unsigned int) и 50 (int), 50 также будет интерпретироваться как беззнаковое целое число, то есть 50u.

Кроме того, результат операции также будет иметь тип операндов. Следовательно, результат 25u - 50u и сам является беззнаковым целым числом. Таким образом, результат -25 преобразуется в 4294967271.
Алгоритм inner_product

Вычисляет сумму поэлементного умножения двух диапазонов и добавляет ее к указанному начальному значению либо вычисляет результат обобщенной процедуры, где бинарные операции суммы и умножения заменены на другие указанные бинарные операции.
This media is not supported in your browser
VIEW IN TELEGRAM
Ускоряем рабочие процессы: оплачивайте Cursor через МТС Оплату

Покупайте подписки для работы в пару кликов через СБП и с минимальной комиссией. Так же можно оплачивать ещё 150+ зарубежных сервисов: Replit, Sentry, Qodo, Warp, Windsurf и другие.

Весь процесс займёт не больше 5 минут. Пароли и лишние данные не нужны — только ваша почта. Оплачивайте сервисы и исправляйте баги вместе с МТС Оплатой 🤗
#вопросы_с_собеседований
Что такое класс хранения?

Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти.

В C ++ поддерживаются такие классы хранения: auto, static, register, extern и mutable.

Обратите внимание, что register устарел для C++11. Для C++17 он был удален и зарезервирован для будущего использования.
Оффер за 3 дня: будущее инженерии начинается в YADRO.

Запускаем SPRINT OFFER для C++ Software Engineer!

Мы ждем:
Талантливых инженеров с опытом работы на C/С++, уверенным знанием сетей TCP/IP и Linux.

Как принять участие?
1️⃣ Оставьте заявку до 19 октября и пройдите HR-скрининг
2️⃣ Пройдите техническое и менеджерское интервью
3️⃣ Получите оффер в течение 3 дней

О направлении:
Инженеры разрабатывают комплексную платформу для построения современных узлов сотовых сетей, включая базовые станции LTE и GSM. Создаваемая платформа обеспечивает управление всей телеком инфраструктурой: от прикладных компонентов до сетевой топологии.

💙 Не упускайте шанс присоединиться к интересному проекту и работать с инженерами мирового уровня! Успейте подать заявку до 19 октября по ссылке!
Please open Telegram to view this post
VIEW IN TELEGRAM
☄️Как устроено автодополнение в поисковых системах?

🗓 8 октября в 20:00 МСК приглашаем на открытый урок OTUS «Как вырастить префиксное дерево». На вебинаре мы пошагово построим префиксное дерево (Trie) для слов из большого текста, добавим счётчики частот и реализуем автодополнение. Вы увидите, как по первым буквам мгновенно находятся все слова с этим префиксом и выводятся самые популярные варианты продолжений.

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

Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.

👉Зарегистрируйтесь сейчас и узнайте, как вырастить своё первое Trie-дерево: https://otus.pw/wgfC/


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Алгоритм reverse_copy

Алгоритм копирует элементы из заданного диапазона, но в обратном порядке.

Принимает три параметра. Первые два параметра — это диапазон копируемых элементов, а третий параметр — начальная точка, из которой элементы копируются в обратном порядке.
2025/10/09 06:40:32
Back to Top
HTML Embed Code: