This media is not supported in your browser
VIEW IN TELEGRAM
Подборка из задач по алгоритмам и структурам данных: массивы, списки, стеки, очереди, деревья, хеш-таблицы и сортировки. Каждая задача — с пояснениями и ссылками на базовые и продвинутые приёмы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤3👍3
Функция
std::launder сообщает компилятору, что по адресу создан новый объект.Что важно знать:
• Без него программа может получить старое число;
• Его вызов гарантирует чтение именно новой записи;
• Нужен только при хитром. обращении с памятью
Используй разумно, избегай неожиданных ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤5👍3
std::ranges + views в действии: фильтруем и преобразуем без циклов!
Нужно из вектора чисел отфильтровать чётные и возвести их в квадрат?
В C++20 это можно сделать декларативно — без
Создаём исходный вектор с числами от 1 до 10:
Формируем pipeline из двух представлений: фильтрация чётных чисел и возведение их в квадрат:
Выводим полученные значения в консоль через
🔥 Современный C++ позволяет выразить обработку контейнеров кратко, наглядно и без лишней рутины!
📣 C++ Ready | #практика
Нужно из вектора чисел отфильтровать чётные и возвести их в квадрат?
В C++20 это можно сделать декларативно — без
for, временных переменных и ручного перебора:std::vector<int> data{1,2,3,4,5,6,7,8,9,10};Создаём исходный вектор с числами от 1 до 10:
auto pipeline = data
| std::views::filter([](int x) { return x % 2 == 0; })
| std::views::transform([](int x) { return x * x; });
Формируем pipeline из двух представлений: фильтрация чётных чисел и возведение их в квадрат:
std::ranges::copy(
pipeline,
std::ostream_iterator<int>(std::cout, " ")
);
Выводим полученные значения в консоль через
std::ranges::copy и итератор вывода.🔥 Современный C++ позволяет выразить обработку контейнеров кратко, наглядно и без лишней рутины!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥3
Он позволяет удобно работать с матрицами и тензорами без владения памятью и без ручного расчёта индексов. Подходит для численных вычислений, алгоритмов и любых задач, где нужна чистая работа с данными в несколько измерений.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤6👍4
👍9❤6🔥3🤝1
Позволяет быстро добавлять задачи, отмечать их выполненными и хранить в локальном JSON‑файле.
В этой задаче:
• Загружает и сохраняет список задач через обычный текстовый файл.
• Позволяет переключать статус задачи одной командой в терминале.
• Структура и код легко расширяются под любые нужды.
Минималистичный помощник для повседневных дел.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥6👍5
Обходим все .cpp файлы в проекте!
Нужно найти все
Сначала подключим нужные заголовки:
Теперь проходимся по всем подкаталогам и фильтруем
🔥 Чтение файловой структуры стало кроссплатформенным и безопасным — никакой магии, только
📣 C++ Ready | #практика
Нужно найти все
.cpp файлы в дереве каталогов — например, для подсчёта строк, парсинга или запуска сборки. Вместо вызова find из shell — используем стандартную библиотеку C++.Сначала подключим нужные заголовки:
#include <filesystem>
#include <iostream>
Теперь проходимся по всем подкаталогам и фильтруем
.cpp:namespace fs = std::filesystem;
for (const auto& entry : fs::recursive_directory_iterator("src"))
if (entry.path().extension() == ".cpp")
std::cout << entry.path() << '\n';
🔥 Чтение файловой структуры стало кроссплатформенным и безопасным — никакой магии, только
std-решения.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3👍2