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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
🧐 Как писать понятнее и безопаснее с concepts?

Шаблонные ограничения можно описывать прямо в сигнатуре функции — без enable_if и макросов.

Пример: template<std::integral T> T add(T a, T b)

Компилятор сразу проверит, что T — целочисленный тип, и выдаст понятную ошибку при несоответствии.

Работает со стандартными и пользовательскими concept’ами (std::floating_point, std::same_as и др.)

📣 C++ Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥3
🔥 Дедлайн — 21 октября 🔥

Оформи заявку на Хакатон ИТ-холдинга Т1 сегодня и поборись за призовой фонд 800 000₽

Финишная прямая: подай заявку на Хакатон Т1 Новосибирск.

Реальные кейсы, рост и нетворкинг.

Команды от 3 до 5 человек.

Призовой фонд 800 000 ₽.

Завершение регистраций — 21 октября, 23:59 НСК.
Принять участие
Быстро удаляем пробелы в начале и в конце строки!

Когда мы читаем строки из файла, пользовательского ввода или сетевого запроса — часто получаем "шум": пробелы, табы, переводы строк.

Во многих языках есть встроенные trim()-функции, но в C++ стандартной такой нет. Зато её легко реализовать самому — компактно, эффективно и без сторонних зависимостей.

Начнём с подключения нужных заголовков:
#include <string>
#include <cctype> // std::isspace
#include <algorithm>
#include <iostream>


Теперь реализуем функцию trim, которая:
• пропускает все пробелы с начала строки;
• пропускает все пробелы с конца;
• возвращает обрезанную часть как новую строку:
std::string trim(const std::string& s) {
auto start = std::find_if_not(s.begin(), s.end(), ::isspace);
auto end = std::find_if_not(s.rbegin(), s.rend(), ::isspace).base();
return (start < end) ? std::string(start, end) : "";
}


Проверим, как это работает на примере строки с лишними пробелами и переводами строк:
std::string raw = "   \t\n Hello, world! \n ";
std::string cleaned = trim(raw);

std::cout << "[" << cleaned << "]\n";


Результат выполнения:
[Hello, world!]


🔥 Теперь у тебя есть удобная функция, которая безопасно удаляет "мусор" по краям строки.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥7👍4
37😁15🤝10👎1
👩‍💻 Безопасные перечисления с enum class!

Scoped enum не даёт случайных преобразований и позволяет выбрать размер хранения под задачу.

Что важно знать:
Не превращается в число;

Задаётся точный размер;

Имена в своей зоне.


Он помогает писать читаемый код без багов и лишнего шума от неявных действий.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤝124👍2😁1
Что же выведет консоль?
Anonymous Quiz
61%
A
13%
B
20%
C
6%
D
10👍6🔥3
👩‍💻 Собственный ping через ICMP

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

Что важно знать:
Нужен доступ root;

Пакеты формируем сами;

Ответ ждём вручную;


Работает уже в минимуме, а дорастает до полноценного инструмента всего за пару шагов.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥217👍5
🤨 Как вернуть подстроку без лишнего копирования?

В 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