C/C++ Ready | Программирование
13.5K subscribers
967 photos
51 videos
422 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
🔥134👍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
7👍5🔥4👎1
👩‍💻 Распознаём текст из изображений в консоли!

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

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

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

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

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


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

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍167🔥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
🔥156👍5👎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
🔥26👍63
Что же выведет консоль?
Anonymous Quiz
19%
A
65%
B
10%
C
6%
D
👍64🔥3
👩‍💻 Как работает оператор <=>?

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

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

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

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

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


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍64🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ JavaRush — целая куча легендарных курсов на русском!

На сайте доступно множество уроков и статей — от основ C, алгоритмов, структур данных, до веб-технологий и SQL. Всё структурировано: уровни, задания, поддержка. Даже абсолютный новичок может стартовать и постепенно прокачиваться.

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

📣 C++ Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156🔥5