Позволяет представлять и передавать срезы элементов (обёртка над массивом/вектором/указателем+размером) без лишних копий.
Что важно знать:
• Не владеет данными — он хранит лишь указатель и длину; контейнер должен жить дольше span, иначе — UB.
• Синтаксис: std::span<T> (динамическая длина) и std::span<T, N> (фиксированная длина).
• Конструкторы принимают std::array, std::vector, C-массив или pointer+size
Удобно для передачи срезов без копирования, главное — не допускать dangling и отдавать span<const T> для чтения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍7❤5
Лёгкая утилита-«швейцарский нож» для TCP/UDP и UNIX-сокетов: слушает/устанавливает соединения, пересылает файлы, делает обратные оболочки, стримит и сканирует порты/граббинг баннеров.
Часто комбинируют с openssl, tar, dd для шифрования, архивации и клонирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥7❤4
Она применяется для быстрых операций над массивами: получение информации на отрезке и обновление значений. Всё это работает за логарифм времени!
Ключевые моменты:
• Построение: берём массив и строим по нему дерево, каждая вершина отвечает за минимум на своём участке.
• Запрос: спускаясь по дереву, можно найти минимум на любом отрезке за O(log n).
• Обновление: меняем значение в массиве, и дерево быстро перестраивается только по пути от листа к корню
Дерево отрезков моментально реагирует на изменения, не пересчитывая весь массив.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤10👍4🤝3
Читаем весь файл в строку!
Иногда нужно быстро загрузить весь текстовый файл в память — например, чтобы распарсить конфиг, JSON или HTML. Это можно сделать в одну строчку, без циклов и ручного копирования.
Сначала подключим необходимые библиотеки из стандартной поставки:
Теперь считаем весь файл
Результат: вся строка будет содержать полный текст файла, включая пробелы и переводы строк.
🔥 Такой способ прост, лаконичен и не требует ручного перебора или буферов — идеально для загрузки небольших текстовых файлов.
📣 C++ Ready | #практика
Иногда нужно быстро загрузить весь текстовый файл в память — например, чтобы распарсить конфиг, 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>());
Результат: вся строка будет содержать полный текст файла, включая пробелы и переводы строк.
🔥 Такой способ прост, лаконичен и не требует ручного перебора или буферов — идеально для загрузки небольших текстовых файлов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍9🔥5
Консольная утилита, которая по координатам запрашивает у Open-Meteo текущую температуру и погодный код, а в вывод добавляет соответствующее эмодзи.
Основные моменты:
• HTTP-запрос выполняется через cpr (обёртка над libcurl) с проверкой сетевых ошибок и кода 200 OK;
• nlohmann::json парсит текстовый JSON в объект, из которого легко получить поля temperature (°C) и weathercode;
• Эмодзи для кодов хранятся в std::unordered_map, а find даёт «?» для неизвестных значений.
Это позволяет быстро адаптировать CLI-клиент для курсов валют, новостей и других сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤6👍5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
На сайте собраны краткие и наглядные примеры кода с понятными комментариями; статьи рассортированы по тегам уровня (beginner → advanced) и темам вроде алгоритмов, контейнеров, работы с файлами, строк, памяти и т. д.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤6🔥4🤝1
🔥Прими участие в Хакатоне Т1 в Нижнем Новгороде и поборись за призовой фонд 600 000 рублей!
📅 Когда: 19 – 22 сентября
🌐 Формат: онлайн + финал на площадке
Участвуй, если ты:
🔹студент тех/ИТ-направлений;
🔹развиваешься в dev, аналитике, дизайне, AI/DS/ML, DevOps;
🔹сможешь быть в Нижнем Новгороде 22-09.
Выбери свой кейс:
🔸PingTower — сервис круглосуточного отслеживания доступности сайтов и мгновенных уведомлений о сбоях, позволяющий бизнесу не терять клиентов.
🔸HR Консультант — ИИ-консультант для карьерных сценариев и поиска талантов по умным фильтрам.
Почему стоит участвовать:
🔻Кейс в портфолио и полезная обратная связь от менторов Т1;
🔻Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний;
🔻Реальный опыт командной работы.
Регистрация открыта!
➡️ Успей до 17 сентября по ссылке
Ты не из Нижнего Новгорода? Смотри расписание хакатонов в других городах.
#реклама
О рекламодателе
📅 Когда: 19 – 22 сентября
🌐 Формат: онлайн + финал на площадке
Участвуй, если ты:
🔹студент тех/ИТ-направлений;
🔹развиваешься в dev, аналитике, дизайне, AI/DS/ML, DevOps;
🔹сможешь быть в Нижнем Новгороде 22-09.
Выбери свой кейс:
🔸PingTower — сервис круглосуточного отслеживания доступности сайтов и мгновенных уведомлений о сбоях, позволяющий бизнесу не терять клиентов.
🔸HR Консультант — ИИ-консультант для карьерных сценариев и поиска талантов по умным фильтрам.
Почему стоит участвовать:
🔻Кейс в портфолио и полезная обратная связь от менторов Т1;
🔻Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний;
🔻Реальный опыт командной работы.
Регистрация открыта!
➡️ Успей до 17 сентября по ссылке
Ты не из Нижнего Новгорода? Смотри расписание хакатонов в других городах.
#реклама
О рекламодателе
❤2
Они позволяют безопасно выполнить тяжёлый участок только один раз при множестве одновременных обращений.
Что важно знать:
• Первый запуск делает работу, остальные спокойно ждут.
• Повторные вызовы получают готовый результат без лишних проверок.
• Если произошёл сбой, механизм позволяет повторить запуск позже.
Такой подход уменьшает код синхронизации и устраняет гонки данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7🤝4❤1