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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Создадим утилиту для быстрого чтения названий MP3-треков!

Программа открывает файл и мгновенно выводит автора и название трека без лишнего.

В этой задаче:

Читает метаданные из специального фрагмента в конце файла;

Удаляет лишние пробелы и пустые символы в строке;

Выводит только имя исполнителя и заголовок песни.


Всё это просто и удобно для быстрой проверки музыкальных файлов.

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥256👍4🤝1
Что же выведет консоль?
Anonymous Quiz
27%
A
37%
B
27%
C
8%
D
5👍4🔥3
👩‍💻 Структурная распаковка для простого кода!

Позволяет одновременно извлечь значения из разных объектов одним понятным выражением кода.

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

Упрощает чтение, показывая имена сразу рядом с данными;

Позволяет в одном условии одновременно проверить и извлечь данные;

Работает с разными наборами данных и вашими структурами.


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥86👍3🤝3
Коррутины: мини-генератор Фибоначчи за 5 строк!

С корутинами можно легко делать ленивые генераторы — без внешних буферов, флагов или сложных классов-итераторов.

Вот сама функция-генератор — всего 5 строк логики:
std::experimental::generator<int> fib() {
int a = 0, b = 1;
while (true) {
co_yield a;
auto t = a; a = b; b = t + b;
}
}


Здесь co_yield приостанавливает выполнение и возвращает текущее значение, а при следующем вызове возобновляет работу ровно там, где остановилась. Все управление состоянием и стеком берёт на себя механизм корутин.

Использование в main() предельно простое — берём значения до нужного предела:
int main() {
for (auto v : fib()) {
if (v > 1000) break;
std::cout << v << ' ';
}
}


Цикл автоматически остановится, когда число превысит 1000, и выведет «0 1 1 2 3 5 8 …» вплоть до последнего подходящего значения.

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

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥96👍5
👩‍💻 Суффиксный массив + LCP — быстрый индекс для строк!

Эти структуры превращают строки в быстрый инструмент поиска и анализа.

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

• Строятся быстро, занимая умеренную память и время;

Помогают мгновенно находить повторения и разные подстроки;

Упрощают задачи сравнения текстов и циклических сдвигов;


Освойте их и ускорьте текстовые задачи сегодня.

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Нашел вам simdjson — это ультрабыстрая библиотека для работы с JSON

Она позволяет парсить JSON-файлы в десятки раз быстрее стандартных решений, используя SIMD-инструкции современных процессоров. Поддерживает DOM-модель, потоковую обработку и API для удобной интеграции.

Оставляю ссылочку: GitHub 📱


📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥123👍3
👩‍💻 Разбираем std::generator — ленивый range, построенный на механизме корутин!

Он формирует значения по требованию, а не заранее, что делает возможным работу с потенциально бесконечными последовательностями и экономит ресурсы.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍63