Он помогает выбрать лучший набор вещей, не перегружая сумку. Всё это достигается быстрым перебором возможных сочетаний!
Ключевые моменты:
• Оцениваем пользу каждого предмета и его тяжесть;
• Постепенно собираем сумку, пробуя тяжёлые варианты позже;
• Запоминаем лучшие итоги, избегая лишних пересчётов и хранения.
Рюкзак показывает, как извлечь максимум пользы из ограниченного веса, оставаясь в рамках бюджета возможностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤6👍4🤝1
Пользовательские аллокаторы в STL: управляем памятью сами!
Иногда нужен точный контроль за выделением памяти — например, чтобы логировать аллокации или запитывать контейнеры из собственного буфера.
Для этого стандартные контейнеры C++ позволяют подставить свой аллокатор.
Создадим минимальный аллокатор с логированием:
Теперь подключим аллокатор к контейнеру:
🔥 Результат: контейнер логирует каждое выделение и освобождение памяти, позволяя внедрять кастомные стратегии без глобальной подмены
📣 C++ Ready | #практика
Иногда нужен точный контроль за выделением памяти — например, чтобы логировать аллокации или запитывать контейнеры из собственного буфера.
Для этого стандартные контейнеры 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.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7🔥6
Мини-утилита отправляет один запрос к открытому сервису, получает строку с адресом и выводит её — быстро, компактно и без сложных зависимостей.
Основные моменты:
• Один запрос сразу сообщает внешний адрес без лишних шагов;
• Зависимости не нужны, код переносится между проектами легко;
• Обработка ошибок бережёт программу от временных сетевых сбоев.
Такой подход удобен для диагностики, логирования и маленьких CLI-инструментов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍11❤5
This media is not supported in your browser
VIEW IN TELEGRAM
На странице собрано более тысячи вопросов с ответами: от типов и указателей до STL и шаблонов. Каждый пункт снабжён пояснением и код-фрагментом — идеальный экспресс-тренажёр перед собесом или экзаменом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍4
Forwarded from IT Ready
И как раз сегодня — этот самый день!
Кстати, 256 не с проста:
Это 2 в степени 8, то есть максимальное количество значений, которые может хранить один байт — основа работы компьютеров.
В невисокосный год праздник выпадает на 13 сентября, а в високосный — на 12-е.
Так что, поздравляю всех программистов!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36👍7🔥6
Они делают шаблонный код самодокументируемым, сокращают количество запутанных ошибок компиляции и позволяют писать более безопасные, предсказуемые и читаемые API.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤8👍6🤝4👎2
Отсекает лишние версии функций, делая интерфейс универсальным и безопасным без громоздкости.
Что важно знать:
• Фильтр исключает неподходящие функции ещё до запуска;
• Можно писать универсальный код без лишних проверок;
• Нужно точно ставить фильтр для корректной сборки.
Понимайте фильтр, даже переходя на концепты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥9👍5🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Он выходит примерно раз в две недели, где ведущие Тимур Думлер и Фил Нэш беседуют с гостями из сообщества C++ о последних новостях, докладах, библиотеках и лучших практиках разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥5👍4
Программа открывает файл и мгновенно выводит автора и название трека без лишнего.
В этой задаче:
• Читает метаданные из специального фрагмента в конце файла;
• Удаляет лишние пробелы и пустые символы в строке;
• Выводит только имя исполнителя и заголовок песни.
Всё это просто и удобно для быстрой проверки музыкальных файлов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤6👍4🤝1