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

Cотрудничество: @energy_c

РКН: https://clck.ru/3QREHc
Download Telegram
📱 Базовая шпаргалка по C++

Небольшая шпаргалка по C++, которая поможет вам вспомнить синтаксис основных концепций языка.


⬇️ Скачать полную версию

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥6👎2
👩‍💻 Рекурсия: Важные моменты и ошибки

Рекурсия — это когда функция вызывает саму себя для решения подзадач, но при её использовании можно столкнуться с ошибками.

1. Факториал: базовый пример.
Чтобы понять рекурсию, рассмотрим классический пример вычисления факториала числа:
int factorial(int n) {
return (n == 0) ? 1 : n * factorial(n - 1);
}

Функция вызывает саму себя, пока не достигнет базового случая — 0.

2. Бесконечная рекурсия: типичная ошибка
Если базовый случай отсутствует, программа может уйти в бесконечный цикл и вызвать переполнение стека:
void infiniteRecursion() {
infiniteRecursion(); // рекурсия без выхода
}

Это приведёт к падению программы из-за переполнения стека.

3. Оптимизация: хвостовая рекурсия

Иногда можно использовать хвостовую рекурсию, чтобы избежать дополнительных затрат на стек вызовов:
int tailFactorial(int n, int result = 1) {
return (n == 0) ? result : tailFactorial(n - 1, result * n);
}

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

📣 C++ Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤝6🔥5
📖 Основы программирования на языке C

Подробное руководство для начинающих, которое знакомит с фундаментальными концепциями языка C, от синтаксиса до структур данных.

Автор: Дорогов В.
Год: 2020


⬇️ Скачать книгу

📣 C++ Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
👩‍💻 Перегрузка операторов

Перегрузка операторов в C++ позволяет переопределить стандартные операторы для работы с пользовательскими типами данных.

Вся остальная информация и использование с кодом, есть в картинках выше!

🔥 — если узнал новое
🤝 — если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42🤝27👍5
👩‍💻 Шпаргалка по регулярным выражениям

Большая подробная шпаргалка по регулярным выражениям в С++, в которой разобраны как базовые, так и математические выражения.

⬇️ Скачать полную версию

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥4👎1
👩‍💻 RAII: Основа безопасного управления ресурсами

RAII — это идиома C++, которая связывает жизненный цикл ресурса с объектом, владеющим этим ресурсом.

Этот метод управления ресурсами помогает избежать утечек, автоматически освобождая ресурсы при уничтожении объекта.

🔥 — если узнал новое
🤝 — если уже пользовался

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51🤝19👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥20😁1
👩‍💻 Магия ключевого слова constexpr

C++ 11 познакомил нас с constexpr, а с приходом C++ 14 и 17 это слово стало ещё более гибким и могущественным.

Но многие до сих пор недооценивают его силу, а зря! Попробуем разобраться, как constexpr может изменить твой код к лучшему.

Итак, представь себе простую задачу: тебе нужно вычислить факториал числа, и ты хочешь, чтобы компилятор это сделал на этапе компиляции (кто же хочет ждать вычислений в рантайме, если это можно избежать?). Вот решение без constexpr:
int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
int result = factorial(5); // вычисляется на этапе выполнения


Теперь с constexpr:
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
constexpr int result = factorial(5); // вычисляется на этапе компиляции


Компилятор вычисляет factorial(5) ещё до запуска программы, что ускоряет код и снижает нагрузку в рантайме, но есть пара нюансов:

• Чистота функций: constexpr функции должны быть "чистыми" — не менять глобальные данные и быть полностью детерминированными.

• Решение компилятора: компилятор может выполнить вычисление в constexpr, но не обязан. Если не удастся, он выполнит его в рантайме.

Так что в использовании constexpr есть свои тонкости, но при правильном подходе это просто находка для оптимизации. Делитесь своим мнением в комментариях и если было полезно, ставь реакцию под постом!

📣 C++ Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍13🤝3❤1
📖 С++ Шаг за шагом

Учебное пособие для начинающих, которое постепенно вводит в мир программирования на C++, объясняя основные концепции и синтаксис языка.

Автор: Шилдт Герберт
Год: 2013


⬇️ Скачать книгу

📣 C++ Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥7🤝3👎2
👩‍💻 Интерфейсы и абстрактные классы: проектирование гибкой архитектуры

Интерфейсы и абстрактные классы в C++ позволяют создавать гибкие и масштабируемые архитектуры, отделяя реализацию от интерфейса.

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

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