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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👍8🔥53
Что же выведет консоль?
Anonymous Quiz
18%
A
57%
B
4%
C
21%
D
👍9🔥42👎1
👩‍💻 Сегодня разберем рюкзак — приём разумного распределения ресурсов!

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

Ключевые моменты:
Оцениваем пользу каждого предмета и его тяжесть;

Постепенно собираем сумку, пробуя тяжёлые варианты позже;

Запоминаем лучшие итоги, избегая лишних пересчётов и хранения.


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

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥126👍4🤝1
Пользовательские аллокаторы в STL: управляем памятью сами!

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

Для этого стандартные контейнеры C++ позволяют подставить свой аллокатор.

Создадим минимальный аллокатор с логированием:
template <typename T>
struct LoggingAllocator {
using value_type = T;

T* allocate(std::size_t n) {
std::cout << "alloc " << n << '\n';
return static_cast<T*>(::operator new(n * sizeof(T)));
}

void deallocate(T* p, std::size_t) noexcept {
std::cout << "free\n";
::operator delete(p);
}
};


allocate выводит сообщение и выделяет память обычным способом; deallocate симметрично освобождает её.

Теперь подключим аллокатор к контейнеру:
std::vector<int, LoggingAllocator<int>> v;
v.push_back(1); // → alloc 1
v.push_back(2); // → alloc 2


🔥 Результат: контейнер логирует каждое выделение и освобождение памяти, позволяя внедрять кастомные стратегии без глобальной подмены new/delete.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7🔥6
👩‍💻 Узнаём публичный IP-адрес устройства!

Мини-утилита отправляет один запрос к открытому сервису, получает строку с адресом и выводит её — быстро, компактно и без сложных зависимостей.

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

Один запрос сразу сообщает внешний адрес без лишних шагов;

Зависимости не нужны, код переносится между проектами легко;

Обработка ошибок бережёт программу от временных сетевых сбоев.


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

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍115
This media is not supported in your browser
VIEW IN TELEGRAM
👍 Sanfoundry MCQ — большая коллекция тестов для быстрой практики и самопроверки!

На странице собрано более тысячи вопросов с ответами: от типов и указателей до STL и шаблонов. Каждый пункт снабжён пояснением и код-фрагментом — идеальный экспресс-тренажёр перед собесом или экзаменом.

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

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍4
Forwarded from IT Ready
☕️ Чуть не забыл, знали, что каждый 256-й день в году отмечается День программиста?

И как раз сегодня — этот самый день!

Кстати, 256 не с проста:
Это 2 в степени 8, то есть максимальное количество значений, которые может хранить один байт — основа работы компьютеров.

В невисокосный год праздник выпадает на 13 сентября, а в високосный — на 12-е.


Так что, поздравляю всех программистов! ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
36👍7🔥6
👩‍💻 Разбираем Concepts — механизм выразительных ограничений шаблонов, проверяющий требования к типам уже на этапе компиляции!

Они делают шаблонный код самодокументируемым, сокращают количество запутанных ошибок компиляции и позволяют писать более безопасные, предсказуемые и читаемые API.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥208👍6🤝4👎2
👩‍💻 Сегодня разбираем фильтры SFINAE: чистый выбор функций!

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

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

Фильтр исключает неподходящие функции ещё до запуска;

Можно писать универсальный код без лишних проверок;

Нужно точно ставить фильтр для корректной сборки.


Понимайте фильтр, даже переходя на концепты.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥9👍5🤝3