Позволяет мгновенно обновлять элементы и считать сумму на любом префиксе за логарифм времени.
Что важно знать:
• Хранит частичные куски;
• Обновляет несколько позиций;
• Быстро считает префиксы.
Дерево Фенвика удобно, просто реализуется и эффективно решает задачи с частыми обновлениями и запросами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤4👍4
Умные указатели и static_pointer_cast: безопасный кастинг!
Когда у вас есть
Здесь
Теперь выполним кастинг и вызовем методы производного класса:
🔥 Это позволяет безопасно преобразовать
📣 C++ Ready | #практика
Когда у вас есть
std::shared_ptr<Base>
, который на самом деле указывает на объект Derived
, можно безопасно «опустить» указатель до производного типа:#include <memory>
#include <iostream>
struct Base {
virtual ~Base() = default;
virtual void info() { std::cout << "Base\n"; }};
struct Derived : Base {
void specific() { std::cout << "Derived specific\n"; }};
auto basePtr = std::make_shared<Derived>();
// shared_ptr<Base> на Derived
Здесь
basePtr
действительно содержит Derived
, но тип хранится как shared_ptr<Base>
.Теперь выполним кастинг и вызовем методы производного класса:
auto derivedPtr = std::static_pointer_cast<Derived>(basePtr);
derivedPtr->specific(); // Derived specific
derivedPtr->info();
// Base, метод из базового класса
🔥 Это позволяет безопасно преобразовать
shared_ptr
между совместимыми типами и избежать небезопасных C-стиля кастов и проверок на nullptr
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥3👎1
Утилита пригодится, если нужно быстро извлечь текст из скриншота, фото или PDF-страницы.
Что важно знать:
• Работает с картинками;
• Поддерживает русский язык;
• Запускается через терминал.
Простой инструмент для автоматизации, распознавания чеков, объявлений или конспектов без лишней нагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3👎1
Создаём метрические литералы за 1 минуту!
Иногда хочется писать
Используем их так же легко, как числа:
🔥 Код становится самодокументируемым, а арифметика — безопасной и constexpr-чистой.
📣 C++ Ready | #практика
Иногда хочется писать
5_km + 300_m
без «магических» коэффициентов. Пользовательские литералы делают это читаемо и проверяемо на этапе компиляции:struct Meter {
double value;
// всегда в метрах
constexpr explicit operator double() const { return value; }
};
constexpr Meter operator"" _m (long double v) { return Meter{static_cast<double>(v)}; }
constexpr Meter operator"" _km(long double v) { return Meter{static_cast<double>(v * 1000)}; }
Используем их так же легко, как числа:
constexpr Meter d = 5.0_km + 300.0_m; // 5300 м на этапе компиляции
static_assert(static_cast<double>(d) == 5300.0);
std::cout << d.value << " m\n"; // вывод: 5300
🔥 Код становится самодокументируемым, а арифметика — безопасной и constexpr-чистой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5❤4👎2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍5❤3
❤4👍4🔥3
ТОП 3 канала для тех, кто увлекается хакингом и кибербезопасностью
Этичный Хакер — крупнейший в СНГ канал по информационной безопасности. OSINT, анонимность, пентест, социальная инженерия.
Лаборатория Хакера — авторский канал от специалиста по ИБ. Новости даркнета, сетевая разведка, обзоры инструментов с github, полезные подборки.
Mr.Robot — OSINT, анонимность, OWASP, Linux, даркнет.
Этичный Хакер — крупнейший в СНГ канал по информационной безопасности. OSINT, анонимность, пентест, социальная инженерия.
Лаборатория Хакера — авторский канал от специалиста по ИБ. Новости даркнета, сетевая разведка, обзоры инструментов с github, полезные подборки.
Mr.Robot — OSINT, анонимность, OWASP, Linux, даркнет.
🔥2
Он сравнивает сразу все поля и сам генерирует нужные операторы сравнения.
Что важно знать:
• Автоматически создаёт сравнения;
• Поддерживает особые случаи;
• Работает в STL без кода.
<=>
упрощает сравнение объектов и отлично работает с современными стандартами и алгоритмами STL.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤4👍3🤝1