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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Разберем 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
Собираем все .txt из папки в один файл — без лишних циклов и копирования!

Часто нужно объединить десятки текстовых файлов в один отчёт или сводку. Всё делаем стандартными средствами C++ — коротко и надёжно.

Получаем список всех .txt файлов в нужной директории:
namespace fs = std::filesystem;
std::vector<fs::path> txt_files(const fs::path& dir) {
std::vector<fs::path> out;
for (auto& e : fs::directory_iterator(dir))
if (e.is_regular_file() && e.path().extension() == ".txt")
out.push_back(e.path());
return out;}


Открываем итоговый файл и последовательно добавляем в него содержимое каждого файла:
void concat_txts(const std::vector<fs::path>& files, const fs::path& out) {
std::ofstream ofs(out, std::ios::binary);
for (const auto& path : files) {
std::ifstream ifs(path, std::ios::binary);
ofs << ifs.rdbuf() << '\n';
}}


Всё вместе — склеиваем файлы в main:
int main() {
auto files = txt_files("notes");
concat_txts(files, "all.txt");
std::cout << "Готово: " << files.size() << " файлов объединено\n";}


🔥 Можно использовать для логов, заметок, экспорта данных. Всё на стандартной библиотеке — переносимо и просто!

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥4
👩‍💻 Утилита для автоматического резервного копирования локальных папок!

Этот инструмент помогает следить за изменениями в папке и быстро дублировать изменённые файлы в резервное место

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

Работает без сторонних библиотек;

Копирует только изменённые файлы;

Подходит для любых каталогов.


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

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥3
Цветной вывод в консоли — яркие логи без библиотек!

Иногда нужно быстро подчеркнуть удачные и ошибочные ветки в логах. Достаточно встроенных ANSI-кодов — никаких внешних зависимостей!

Палитра базовых цветов (ANSI Escape)
constexpr auto red    = "\033[31m";
constexpr auto green = "\033[32m";
constexpr auto yellow = "\033[33m";
constexpr auto reset = "\033[0m";
// вернуть обычный цвет


Выводим сообщения разными цветами и не забываем сбрасывать стиль:
std::cout << green  << "✔️ Всё прошло успешно" << reset << '\n';
std::cout << yellow << "… Загружаем данные" << reset << '\n';
std::cerr << red << "✖️ Ошибка подключения" << reset << '\n';


Работает на Linux / macOS «из коробки».

🔥 В Windows 10+ включите Virtual Terminal (SetConsoleMode(h,ENABLE_VIRTUAL_TERMINAL_PROCESSING)) — и ANSI-краски будут доступны прямо в cmd / PowerShell.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍4🔥4
👩‍💻 Форматируем свои типы!

Позволяет красиво выводить структуры без лишних костылей. Пользователь сам выбирает стиль, а вы контролируете, как объект превращается в строку. Всё просто и удобно.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍76👎3