seniorcpp | Unsorted

Telegram-канал seniorcpp - Senior C++ Developer

11482

Изучаем C++. По вопросам сотрудничества: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba

Subscribe to a channel

Senior C++ Developer

Объясните на примере что такое хеш-функция?

Хеш-функция - это функция, которая принимает на вход некоторые данные и возвращает фиксированный размер выходных данных, называемый хешем. Такие функции широко используются в C++ для решения задач с поиском и индексированием данных. Они позволяют быстро находить элементы в массивах или хранилищах данных.

Рассмотрим применение на примере кода выше:
Мы создаем объект хеш-функции для строки и используем его для вычисления хеша для строки "Hello, world!". Результатом выполнения программы будет вывод на экран хеш-значения для этой строки.

Читать полностью…

Senior C++ Developer

Используем модель нейросети на C++

Смотреть статью

Читать полностью…

Senior C++ Developer

Просмотр все файлов в папке с помощью C++

Для того, чтобы просмотреть все файлы в папке с помощью C++, можно использовать функцию std::filesystem::directory_iterator(). Данная функция позволяет перебирать все файлы в указанной директории.

В данном примере мы получаем текущую директорию с помощью функции fs::current_path(), а затем проходим по всем файлам в этой директории с помощью цикла for. Внутри цикла мы выводим путь к каждому файлу с помощью метода entry.path().

Читать полностью…

Senior C++ Developer

Метод wcscmp()

Функция wcscmp() определена в заголовочном файле cwchar.h . Функция wcscmp() используется для сравнения двух широких строк, заканчивающихся нулем, и это сравнение выполняется лексикографически.

Подробнее можно почитать здесь.

Читать полностью…

Senior C++ Developer

❓Хотите создавать идеальные 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

Читать полностью…

Senior C++ Developer

⚙️ std::set_intersection

В C++ функция std::set_intersection из заголовка <algorithm> позволяет найти пересечение двух отсортированных контейнеров. Результат записывается в другой контейнер.

Читать полностью…

Senior C++ Developer

⚙️ std::vector::resize

В C++ метод std::vector::resize изменяет размер вектора. Если новый размер больше текущего, добавляются элементы с дефолтным значением. Если меньше — лишние элементы удаляются.

Читать полностью…

Senior C++ Developer

➡️ Использование алиасов для длинных типов

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

• Например:

typedef std::vector<std::string> StrVector;

Читать полностью…

Senior C++ Developer

⚙️ std::ceil и std::floor

В C++ функции std::ceil и std::floor из заголовка <cmath> используются для округления числа вверх или вниз до ближайшего целого. Это полезно для контроля направления округления.

Читать полностью…

Senior C++ Developer

#вопросы_с_собеседований
Что такое 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;
}

Читать полностью…

Senior C++ Developer

👍Как применить принципы ООП в языке С для создания сложных программ?

Узнайте на бесплатном уроке онлайн-курса «Программист С» — «Язык Cи и ООП: пошаговая разработка видеоплеера»: регистрация

Разберем практический пример разработки видеоплеера с использованием объектно-ориентированного подхода:
- узнаете особенности реализации ООП в языке С
- рассмотрим проектирование архитектуры видеоплеера: от интерфейсов к реализации
- проведем практику: пошаговая разработка основных компонентов плеера.

Также будет обработка ошибок и управление памятью в объектно-ориентированном стиле; live-coding: демонстрация работы с форматами видео и аудио в С.

В результате получите:
- готовый прототип видеоплеера на С с использованием ООП подходов и практические навыки применения паттернов проектирования в Си.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

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

Читать полностью…

Senior C++ Developer

⚙️ std::rotate

Функция std::rotate из заголовка циклически перемещает элементы в контейнере. Это удобно для сдвига массива или перестановки элементов.

Читать полностью…

Senior C++ Developer

Как управлять памятью без лишних головных болей? Rust предлагает уникальные инструменты безопасности, и мы покажем, как это работает в реальных проектах!

На открытом вебинаре 19 ноября в 20:00 мск разберем умные указатели, interior mutability и деструкторы, научимся избегать типичных ошибок с динамической памятью и писать код, который производителен и безопасен.

Хватит бороться с утечками памяти и некорректными указателями! Освойте Rust и научитесь создавать сложные и безопасные структуры данных, которые ценятся в профессиональной разработке. А с поддержкой опытных экспертов и дипломом OTUS ваш резюме станет еще сильнее.

Регистрируйтесь на вебинар прямо сейчас и получите скидку на большое обучение «Rust Developer. Basic».

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

Читать полностью…

Senior C++ Developer

⚙️ std::lower_bound и std::upper_bound

Функции std::lower_bound и std::upper_bound из заголовка <algorithm> используются для поиска границ диапазона элементов, равных заданному значению, в отсортированном контейнере. Это основа для эффективного бинарного поиска.

Читать полностью…

Senior C++ Developer

⚙️ std::unique

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

Читать полностью…

Senior C++ Developer

Серия видеоуроков по созданию игры на C++

Смотреть видео

Читать полностью…

Senior C++ Developer

Метод find_last_not_of

Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

Читать полностью…

Senior C++ Developer

Метод difftime()

Метод difftime() используется для вычисления разницы между двумя значениями времени в секундах.

Подробнее можно почитать здесь.

Читать полностью…

Senior C++ Developer

Алгоритм copy_if

Копирует из диапазона элементов те элементы, проверка которых на соответствие заданному условию дает значение true.

Читать полностью…

Senior C++ Developer

⚙️ std::adjacent_find

В C++ функция std::adjacent_find из заголовка <algorithm> ищет первый элемент в контейнере, который имеет соседний элемент с таким же значением или удовлетворяет заданному условию. Это удобно для обнаружения повторений или паттернов.

Читать полностью…

Senior C++ Developer

7–8 декабря проводим Weekend Offer Analytics

Устроиться в Яндекс за выходные — реально. Ищем крутых аналитиков с опытом работы от 2 лет на Python или C++, готовых работать в офисном или гибридном режиме на территории России или Республики Беларусь.

Подавайте заявку до 4 декабря — и всего за 2 дня пройдите все технические собеседования. После сможете пообщаться с семью нанимающими командами и выбрать ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер.

Узнать подробности и зарегистрироваться.

Читать полностью…

Senior C++ Developer

🚀 Митап по 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 мск, Четверг

🌐 ОНЛАЙН

✅ Регистрация на мероприятие

Читать полностью…

Senior C++ Developer

➡️ Магия byte

Не многие знаю что существует тип переменной byte. Число этого типа может быть в диапазоне от 0 до 255.

👀 А теперь посмотрите насколько это удобно использовать для хранения значений аналоговых входов Просто идеально… Главное в минус не загоняйте число)

🗣️ А, и занимает это чудо в 2 раза меньше памяти. За такое вас по головке поглядят.

Читать полностью…

Senior C++ Developer

⚙️ std::replace

В C++ функция std::replace из заголовка <algorithm> заменяет все вхождения указанного значения на новое значение в заданном диапазоне. Это полезно для массовой замены элементов в контейнерах.

Читать полностью…

Senior C++ Developer

⚙️ std::reverse

В C++ функция std::reverse из заголовка <algorithm> позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.

Читать полностью…

Senior C++ Developer

👩‍💻 Задача по 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


Решение задачи на картинке ☝

Читать полностью…

Senior C++ Developer

⚙️ std::set

Класс std::set из заголовка <set> представляет собой контейнер, хранящий уникальные элементы в отсортированном порядке. Это удобно для работы с множествами или быстрого поиска.

Читать полностью…

Senior C++ Developer

⚙️ std::priority_queue

В C++ класс std::priority_queue из заголовка <queue> представляет собой контейнер с приоритетной очередью. Элементы извлекаются в порядке приоритета — по умолчанию, от большего к меньшему.

Читать полностью…

Senior C++ Developer

Конференция по системному ПО, железу, Linux и open source — OS DevConf от SberDevices

5 декабря | 11:00 | онлайн и офлайн в Москве

Приглашаем всех, кто в low-level — разработчиков системного и встраиваемого ПО, специалистов по разработке ядра и драйверов, специалистов по SoC, сетевых инженеров.

В программе — 17 выступлений. Среди них — про боли и практики системной разработки:
— APEX для решения несовместимости ABI
— Принципы и реализации обновлений embedded-устройств
— Практика использования ftrace
— Боли и страдания парсинга ELF-файлов, или Ещё раз о безопасном программировании

Также в программе — доклады про прототипы SoC, драйверы на Rust, параллельное программирование без ОС и работу с ядром Linux.

Полная программа и регистрация — на сайте конференции.

Реклама. ПАО Сбербанк. ИНН 7707083893

Читать полностью…

Senior C++ Developer

👩‍💻 Задача по C++: Проверка строки на палиндром

Напишите функцию, которая принимает строку и проверяет, является ли она палиндромом. Функция должна игнорировать пробелы, знаки препинания и регистр.

Пример:

std::cout << isPalindrome("A man, a plan, a canal, Panama") << std::endl; // Ожидаемый результат: true
std::cout << isPalindrome("Hello, World!") << std::endl; // Ожидаемый результат: false


Решение задачи на картинке ☝

Читать полностью…
Subscribe to a channel