C/C++ Ready | Программирование
13.9K subscribers
967 photos
51 videos
422 links
Авторский канал по разработке на C и C++.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Заявление в РКН: № 6188956972

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
🤨 Как вернуть подстроку без лишнего копирования?

В C++ есть мощный инструмент — std::string_view. Он позволяет «смотреть» на часть строки без копий и аллокаций. Быстро, удобно, безопасно (если не забыть про время жизни).

В примере — функция get_ext() возвращает расширение файла из пути, не создавая новых строк.

Работает с std::string, литералами, даже const char* — просто и эффективно.

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

📣 C++ Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍5🔥2🤝1
👩‍💻 Ленивые C++ пайплайны без копий и аллокаций!

Фильтруйте, трансформируйте и обрезайте диапазоны с помощью std::views — всё в одном потоке и без потерь производительности. Настраивайте конвейеры под задачу: отбор, изменение, разбиение, разворот.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍84🤝3
Параллельное суммирование с std::reduce и execution::par!

Если у тебя есть большой массив чисел, и ты хочешь быстро посчитать сумму — не обязательно делать это поэлементно в одном потоке.

С++ даёт инструмент из коробки — std::reduce с флагом std::execution::par, который распараллеливает работу по ядрам.

Подключим нужные заголовки:
#include <numeric>
#include <execution>
#include <vector>
#include <iostream>


Теперь создадим данные и посчитаем сумму:
std::vector<int> data(1'000'000, 1);

int total = std::reduce(
std::execution::par,
data.begin(), data.end()
);

std::cout << "Сумма: " << total << '\n';


🔥 Без лишних потоков, блокировок и циклов ты получаешь прирост производительности на больших объёмах.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥8👍5
👩‍💻 Возводим в степень за логарифм!

Бинарный метод делит показатель степени и ускоряет вычисления до log-шагов.

Что важно знать:

Делим степень пополам;

Используем остаток от деления;

Подходит для модулей.


Надёжный шаблон, необходимый в крипте, теории чисел и задачах с модульными вычислениями.

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19🤝94👍3
👩‍💻 Итераторы-адаптеры для чистого кода!

Они позволяют вставлять данные в контейнеры или читать из потока одной строкой без циклов.

Что важно знать:

Подстраиваются под контейнер;

Подходят для потоков;

Упрощают алгоритмы STL.


Убирают лишний код и делают стандартные алгоритмы удобными даже для нестандартных случаев.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1811👍4🤝2
👩‍💻 Создаем мини-планировщик задач!

40 строк кода превращают JSON-расписание в работающий планировщик, который тихо запускает ваши скрипты вовремя.

Что важно знать:

Один файл исходника;

Любой POSIX-шёлл;

Работает офлайн.


Расширяйте проект: добавьте дни недели, параллельный запуск и логирование, чтобы автоматизация стала гибче и надёжней.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134👍3🤝1