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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Дерево Фенвика для быстрых сумм!

Позволяет мгновенно обновлять элементы и считать сумму на любом префиксе за логарифм времени.

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

Хранит частичные куски;

Обновляет несколько позиций;

Быстро считает префиксы.


Дерево Фенвика удобно, просто реализуется и эффективно решает задачи с частыми обновлениями и запросами.

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥114👍4
Умные указатели и static_pointer_cast: безопасный кастинг!

Когда у вас есть 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.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥3👎1
👩‍💻 Распознаём текст из изображений в консоли!

Утилита пригодится, если нужно быстро извлечь текст из скриншота, фото или PDF-страницы.

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

Работает с картинками;

Поддерживает русский язык;

Запускается через терминал.


Простой инструмент для автоматизации, распознавания чеков, объявлений или конспектов без лишней нагрузки.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥3👎1
Создаём метрические литералы за 1 минуту!

Иногда хочется писать 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-чистой.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍54👎2
👩‍💻 UTC-часовые пояса без боли!

Берите абсолютное время с utc_clock и конвертируйте в нужную зону одной строкой. Забудьте о ручных смещениях и DST навсегда.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍53
Что же выведет консоль?
Anonymous Quiz
19%
A
65%
B
9%
C
7%
D
4👍4🔥3
ТОП 3 канала для тех, кто увлекается хакингом и кибербезопасностью

Этичный Хакер — крупнейший в СНГ канал по информационной безопасности. OSINT, анонимность, пентест, социальная инженерия.

Лаборатория Хакера — авторский канал от специалиста по ИБ. Новости даркнета, сетевая разведка, обзоры инструментов с github, полезные подборки.

Mr.Robot — OSINT, анонимность, OWASP, Linux, даркнет.
🔥2
👩‍💻 Как работает оператор <=>?

Он сравнивает сразу все поля и сам генерирует нужные операторы сравнения.

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

Автоматически создаёт сравнения;

Поддерживает особые случаи;

Работает в STL без кода.


<=> упрощает сравнение объектов и отлично работает с современными стандартами и алгоритмами STL.

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