11482
Изучаем C++. По вопросам сотрудничества: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Объясните на примере что такое хеш-функция?
Хеш-функция - это функция, которая принимает на вход некоторые данные и возвращает фиксированный размер выходных данных, называемый хешем. Такие функции широко используются в C++ для решения задач с поиском и индексированием данных. Они позволяют быстро находить элементы в массивах или хранилищах данных.
Рассмотрим применение на примере кода выше:
Мы создаем объект хеш-функции для строки и используем его для вычисления хеша для строки "Hello, world!". Результатом выполнения программы будет вывод на экран хеш-значения для этой строки.
Используем модель нейросети на C++
Смотреть статью
Просмотр все файлов в папке с помощью C++
Для того, чтобы просмотреть все файлы в папке с помощью C++, можно использовать функцию std::filesystem::directory_iterator(). Данная функция позволяет перебирать все файлы в указанной директории.
В данном примере мы получаем текущую директорию с помощью функции fs::current_path(), а затем проходим по всем файлам в этой директории с помощью цикла for. Внутри цикла мы выводим путь к каждому файлу с помощью метода entry.path().
Метод wcscmp()
Функция wcscmp() определена в заголовочном файле cwchar.h . Функция wcscmp() используется для сравнения двух широких строк, заканчивающихся нулем, и это сравнение выполняется лексикографически.
Подробнее можно почитать здесь.
❓Хотите создавать идеальные C++ API, которые не ломаются на первой же нагрузке?
👉 Тогда не пропустите этот бесплатный вебинар! 3 декабря в 20:00 мск — открытый урок, который кардинально изменит ваш подход к проектированию API на C++!
**Что вас ждет?**
- Понимание плохого и хорошего API: как отличить чудовищное API от шедевра?
- Умение правильно именовать сущности и разбивать их на атомарные элементы. Прокачаем навыки, чтобы не было «кучи кода» и «головной боли».
- Идеи data-oriented подхода для создания API в высоконагруженных приложениях.
**Кому это будет полезно?**
- Разработчикам, кто только знакомится с C++ или переходит с других языков.
- C++-программистам, которые хотят прокачать свои навыки разработки API.
Вы научитесь проектировать удобный, стабильный и эффективный API для C++, который будет работать как часы.
⭐️ Спикер Андрей Рыжиков — разработчик в НИИ обработки аэрокосмических изображений.
Успейте записаться на открытый урок и получите скидку на большое обучение «C++ Developer».
Для участия зарегистрируйтесь: https://otus.pw/NVwT/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⚙️ std::set_intersection
В C++ функция std::set_intersection из заголовка <algorithm> позволяет найти пересечение двух отсортированных контейнеров. Результат записывается в другой контейнер.
⚙️ std::vector::resize
В C++ метод std::vector::resize изменяет размер вектора. Если новый размер больше текущего, добавляются элементы с дефолтным значением. Если меньше — лишние элементы удаляются.
➡️ Использование алиасов для длинных типов
Это позволяет значительно упростить код, сделать его более читаемым и легким для поддержки. • Например:
typedef std::vector<std::string> StrVector;Читать полностью…
⚙️ std::ceil и std::floor
В C++ функции std::ceil и std::floor из заголовка <cmath> используются для округления числа вверх или вниз до ближайшего целого. Это полезно для контроля направления округления.
#вопросы_с_собеседований
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ ⬇️
Perfect forwarding — это техника передачи аргументов в функции или конструкторы так, чтобы сохранить их исходные квалификаторы (например, lvalue, rvalue). Она достигается с помощью универсальных ссылок (T&&) и функции std::forward. Perfect forwarding используется для передачи аргументов в шаблонных функциях без лишних копирований.
Пример использования ⚙️
#include <iostream>Читать полностью…
#include <utility>
void process(int& x) {
std::cout << "Lvalue: " << x << "\n";
}
void process(int&& x) {
std::cout << "Rvalue: " << x << "\n";
}
template <typename T>
void forwarder(T&& arg) {
process(std::forward<T>(arg));
}
int main() {
int a = 42;
forwarder(a); // Передаем lvalue
forwarder(100); // Передаем rvalue
return 0;
}
👍Как применить принципы ООП в языке С для создания сложных программ?
Узнайте на бесплатном уроке онлайн-курса «Программист С» — «Язык Cи и ООП: пошаговая разработка видеоплеера»: регистрация
Разберем практический пример разработки видеоплеера с использованием объектно-ориентированного подхода:
- узнаете особенности реализации ООП в языке С
- рассмотрим проектирование архитектуры видеоплеера: от интерфейсов к реализации
- проведем практику: пошаговая разработка основных компонентов плеера.
Также будет обработка ошибок и управление памятью в объектно-ориентированном стиле; live-coding: демонстрация работы с форматами видео и аудио в С.
В результате получите:
- готовый прототип видеоплеера на С с использованием ООП подходов и практические навыки применения паттернов проектирования в Си.
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ std::rotate
Функция std::rotate из заголовка циклически перемещает элементы в контейнере. Это удобно для сдвига массива или перестановки элементов.
Как управлять памятью без лишних головных болей? Rust предлагает уникальные инструменты безопасности, и мы покажем, как это работает в реальных проектах!
На открытом вебинаре 19 ноября в 20:00 мск разберем умные указатели, interior mutability и деструкторы, научимся избегать типичных ошибок с динамической памятью и писать код, который производителен и безопасен.
Хватит бороться с утечками памяти и некорректными указателями! Освойте Rust и научитесь создавать сложные и безопасные структуры данных, которые ценятся в профессиональной разработке. А с поддержкой опытных экспертов и дипломом OTUS ваш резюме станет еще сильнее.
Регистрируйтесь на вебинар прямо сейчас и получите скидку на большое обучение «Rust Developer. Basic».Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ std::lower_bound и std::upper_bound
Функции std::lower_bound и std::upper_bound из заголовка <algorithm> используются для поиска границ диапазона элементов, равных заданному значению, в отсортированном контейнере. Это основа для эффективного бинарного поиска.
⚙️ std::unique
Функция std::unique из заголовка <algorithm> удаляет последовательные дубликаты в отсортированном диапазоне, оставляя уникальные элементы. Это полезно для очистки списка от повторяющихся значений.
Серия видеоуроков по созданию игры на C++
Смотреть видео
Метод find_last_not_of
Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.
Метод difftime()
Метод difftime() используется для вычисления разницы между двумя значениями времени в секундах.
Подробнее можно почитать здесь.
Алгоритм copy_if
Копирует из диапазона элементов те элементы, проверка которых на соответствие заданному условию дает значение true.
⚙️ std::adjacent_find
В C++ функция std::adjacent_find из заголовка <algorithm> ищет первый элемент в контейнере, который имеет соседний элемент с таким же значением или удовлетворяет заданному условию. Это удобно для обнаружения повторений или паттернов.
7–8 декабря проводим Weekend Offer Analytics
Устроиться в Яндекс за выходные — реально. Ищем крутых аналитиков с опытом работы от 2 лет на Python или C++, готовых работать в офисном или гибридном режиме на территории России или Республики Беларусь.
Подавайте заявку до 4 декабря — и всего за 2 дня пройдите все технические собеседования. После сможете пообщаться с семью нанимающими командами и выбрать ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер.
Узнать подробности и зарегистрироваться.
🚀 Митап по C++ — в центре внимания ключевые аспекты разработки!
✔️ Применение паттернов ООП в современных C++ проектах — Костя Крюков, YADRO
Поговорим о сочетании производительности и гибкости в реальных проектах C++.
✔️ Void me — Сергей Кушниренко, Forgotten Empires (Microsoft Game Studios)
Разберём проблемы типа void в тестах и альтернативные решения.
✔️ Обзор build-системы LightForge — Сергей Струков, YADRO
Сравним LightForge с Make, CMake и Bazel, обсудим её преимущества.
✔️ Сериализация сложных структур данных с помощью jsoncpp — Константин Селезнёв, РЕЛЭКС
Создание удобной надстройки для работы с JSON в сложных проектах.
✔️ Статический анализ: что? как? зачем? — Евгений Феклин, PVS-Studio
Как писать безопасный и качественный код с помощью статического анализа.
Модератор: Алексей Кузнецов, VK
Эксперт: Илья Казаков, YADRO
➖➖➖
🗓 28 ноября, начало в 19:00 мск, Четверг
🌐 ОНЛАЙН
✅ Регистрация на мероприятие
➡️ Магия byte
Не многие знаю что существует тип переменной byte. Число этого типа может быть в диапазоне от 0 до 255.
👀 А теперь посмотрите насколько это удобно использовать для хранения значений аналоговых входов Просто идеально… Главное в минус не загоняйте число)
🗣️ А, и занимает это чудо в 2 раза меньше памяти. За такое вас по головке поглядят.Читать полностью…
⚙️ std::replace
В C++ функция std::replace из заголовка <algorithm> заменяет все вхождения указанного значения на новое значение в заданном диапазоне. Это полезно для массовой замены элементов в контейнерах.
⚙️ std::reverse
В C++ функция std::reverse из заголовка <algorithm> позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.
👩💻 Задача по C++: Удаление дубликатов из массива
Напишите функцию, которая принимает массив целых чисел и удаляет из него все дубликаты. Возвращаемый массив должен содержать только уникальные значения, сохраняя исходный порядок их появления.
Пример:
std::vector<int> numbers = {1, 2, 2, 3, 4, 3, 5};
std::vector<int> result = removeDuplicates(numbers);
for (int num : result) {
std::cout << num << " ";
}
// Ожидаемый вывод: 1 2 3 4 5
⚙️ std::set
Класс std::set из заголовка <set> представляет собой контейнер, хранящий уникальные элементы в отсортированном порядке. Это удобно для работы с множествами или быстрого поиска.
⚙️ std::priority_queue
В C++ класс std::priority_queue из заголовка <queue> представляет собой контейнер с приоритетной очередью. Элементы извлекаются в порядке приоритета — по умолчанию, от большего к меньшему.
Конференция по системному ПО, железу, Linux и open source — OS DevConf от SberDevices
5 декабря | 11:00 | онлайн и офлайн в Москве
Приглашаем всех, кто в low-level — разработчиков системного и встраиваемого ПО, специалистов по разработке ядра и драйверов, специалистов по SoC, сетевых инженеров.
В программе — 17 выступлений. Среди них — про боли и практики системной разработки:
— APEX для решения несовместимости ABI
— Принципы и реализации обновлений embedded-устройств
— Практика использования ftrace
— Боли и страдания парсинга ELF-файлов, или Ещё раз о безопасном программировании
Также в программе — доклады про прототипы SoC, драйверы на Rust, параллельное программирование без ОС и работу с ядром Linux.
Полная программа и регистрация — на сайте конференции.
Реклама. ПАО Сбербанк. ИНН 7707083893
👩💻 Задача по C++: Проверка строки на палиндром
Напишите функцию, которая принимает строку и проверяет, является ли она палиндромом. Функция должна игнорировать пробелы, знаки препинания и регистр.
Пример:
std::cout << isPalindrome("A man, a plan, a canal, Panama") << std::endl; // Ожидаемый результат: true
std::cout << isPalindrome("Hello, World!") << std::endl; // Ожидаемый результат: false