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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
Что же выведет консоль?
Anonymous Quiz
75%
A
9%
B
12%
C
3%
D
👍146🔥4
👩‍💻 Разберем std::span — лёгкое представление, не владеющее данными!

Позволяет представлять и передавать срезы элементов (обёртка над массивом/вектором/указателем+размером) без лишних копий.

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

Не владеет данными — он хранит лишь указатель и длину; контейнер должен жить дольше span, иначе — UB.

Синтаксис: std::span<T> (динамическая длина) и std::span<T, N> (фиксированная длина).

Конструкторы принимают std::array, std::vector, C-массив или pointer+size


Удобно для передачи срезов без копирования, главное — не допускать dangling и отдавать span<const T> для чтения.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍75
📂 Напоминалка по netcat (nc) — универсальному сетевому «швейцарскому ножу»

Лёгкая утилита-«швейцарский нож» для TCP/UDP и UNIX-сокетов: слушает/устанавливает соединения, пересылает файлы, делает обратные оболочки, стримит и сканирует порты/граббинг баннеров.

Часто комбинируют с openssl, tar, dd для шифрования, архивации и клонирования.

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥74
👩‍💻 Сегодня разберем дерево отрезков — мощную структуру данных!

Она применяется для быстрых операций над массивами: получение информации на отрезке и обновление значений. Всё это работает за логарифм времени!

Ключевые моменты:

Построение: берём массив и строим по нему дерево, каждая вершина отвечает за минимум на своём участке.

Запрос: спускаясь по дереву, можно найти минимум на любом отрезке за O(log n).

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


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

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥159👍4🤝3
Читаем весь файл в строку!

Иногда нужно быстро загрузить весь текстовый файл в память — например, чтобы распарсить конфиг, JSON или HTML. Это можно сделать в одну строчку, без циклов и ручного копирования.

Сначала подключим необходимые библиотеки из стандартной поставки:
#include <fstream>
#include <string>
// std::istreambuf_iterator
#include <iterator>


Теперь считаем весь файл input.txt в строку data:
std::string data(
(std::istreambuf_iterator<char>(std::ifstream("input.txt").rdbuf())),
std::istreambuf_iterator<char>());


Результат: вся строка будет содержать полный текст файла, включая пробелы и переводы строк.

🔥 Такой способ прост, лаконичен и не требует ручного перебора или буферов — идеально для загрузки небольших текстовых файлов.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍7🔥5
👩‍💻 CLI-утилита для просмотра погоды!

Консольная утилита, которая по координатам запрашивает у Open-Meteo текущую температуру и погодный код, а в вывод добавляет соответствующее эмодзи.

Основные моменты:

HTTP-запрос выполняется через cpr (обёртка над libcurl) с проверкой сетевых ошибок и кода 200 OK;

nlohmann::json парсит текстовый JSON в объект, из которого легко получить поля temperature (°C) и weathercode;

Эмодзи для кодов хранятся в std::unordered_map, а find даёт «?» для неизвестных значений.


Это позволяет быстро адаптировать CLI-клиент для курсов валют, новостей и других сервисов.

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