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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Нашел вам C++ Developer Guide — abseil

Короткие и понятные пояснения с примерами по часто нужным вещам: работа со строками и контейнерами, время, логирование, флаги и простые примеры для многопоточности.

📌 Оставляю ссылочку: abseil.io

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥104👍3
👩‍💻 Разбираем std::ratio — способ представить дроби в системе типов и выполнять с ними арифметику прямо при компиляции!

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

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍64
Удобная распаковка нескольких значений: std::tie и std::ignore в действии!

Иногда функция возвращает несколько значений — например, пара из std::pair. Раньше приходилось вручную обращаться к .first и .second, что быстро превращалось в нечитаемый код.

С std::tie можно сразу распаковать результат в переменные:
std::pair<int, std::string> get_data() {
return {42, "ответ"};
}

int main() {
int num; std::string text;
std::tie(num, text) = get_data();
std::cout << num << " — " << text;
}


Если нужно проигнорировать часть результата — используем std::ignore:
auto [code, message] = std::make_pair(200, "OK");
std::cout << code; // 200

int val;
std::tie(val, std::ignore) = std::make_pair(7, 99);
std::cout << val; // 7


🔥 Удобно, когда нужно быстро разобрать структуру на отдельные значения, не засоряя код .first / .second.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥74
👩‍💻 Создаем утилиту для конвертации изображений в ASCII-арт!

Сможет превращать любую картинку в символьную «картину» прямо в терминале или сохраняет в .txt

В этой задаче:

Считываем и масштабируем изображение в оттенки серого с помощью OpenCV;

Преобразуем яркость каждого пикселя в соответствующий символ из палитры;

Выводим построчно готовый ASCII-арт без дополнительных зависимостей.


Это минималистичный инструмент для создания текстового искусства.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥478👍8🤝3
👩‍💻 Разберем execution — один аргумент, который превращает обычные алгоритмы STL в параллельные!

Просто допишите std::execution::par или par_unseq, и компилятор сам разобьёт работу на ядра и SIMD-инструкции, давая прирост скорости без лишнего кода и головной боли.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥286🤝5👍2
Мини-конфиг на JSON — читаем, меняем, сохраняем!

Хотите настроить приложение через внешний файл, не заводя сложный парсер? Используйте JSON: читаемо, удобно, поддерживается из коробки с nlohmann/json.

Подключаем библиотеку и читаем конфиг config.json в один объект:
#include <nlohmann/json.hpp>
#include <fstream>
using json = nlohmann::json;

json cfg;
std::ifstream("config.json") >> cfg;


Теперь можно безопасно получить значения и обновить, если нужно:
int port = cfg.value("port", 8080);
cfg["debug"] = true;


Сохраняем обратно с отступами — удобно для ручной правки:
std::ofstream("config.json") << cfg.dump(2);


🔥 JSON стал стандартом де-факто для конфигураций: вы получаете чистоту, читаемость и работу без бойлерплейта.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥7👍3
😁9919🔥7👎3👍2
👩‍💻 Синхронизируем потоки без боли!

Появилось два новых примитива — std::latch и std::barrier, которые убирают лишние condition_variable и делают многопоточность читаемой.

Что важно знать:
• latch — одноразовая точка сбора, ждёт завершения всех задач;

• barrier — циклическая синхронизация с коллбэком после каждой фазы;

Просты в использовании, особенно при множестве параллельных этапов.


Так что, они убирают бойлерплейт и делают потоковый код чище и надёжнее.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥134🤝1