This media is not supported in your browser
VIEW IN TELEGRAM
metanit — портал, на котором представлено множество полезных материалов для обучения программированию. Здесь можно найти ресурсы по разным языкам, в том числе и C++, каждое пособие содержит примеры кода.
📌 Ссылочка: metanit.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥6
Небольшая шпаргалка по C++, которая поможет вам вспомнить синтаксис основных концепций языка.
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);
}Здесь результат передаётся как параметр, что снижает количество вызовов функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤝6🔥5
📖 Основы программирования на языке C
⬇️ Скачать книгу
📣 C++ Ready | #книга
Подробное руководство для начинающих, которое знакомит с фундаментальными концепциями языка C, от синтаксиса до структур данных.Автор: Дорогов В.
Год: 2020
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42🤝27👍5
Большая подробная шпаргалка по регулярным выражениям в С++, в которой разобраны как базовые, так и математические выражения.Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥4👎1
RAII — это идиома C++, которая связывает жизненный цикл ресурса с объектом, владеющим этим ресурсом.
Этот метод управления ресурсами помогает избежать утечек, автоматически освобождая ресурсы при уничтожении объекта.
🔥 — если узнал новое
🤝 — если уже пользовался
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
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 есть свои тонкости, но при правильном подходе это просто находка для оптимизации. Делитесь своим мнением в комментариях и если было полезно, ставь реакцию под постом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍13🤝3❤1
📖 С++ Шаг за шагом
⬇️ Скачать книгу
📣 C++ Ready | #книга
Учебное пособие для начинающих, которое постепенно вводит в мир программирования на C++, объясняя основные концепции и синтаксис языка. Автор: Шилдт Герберт
Год: 2013
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥7🤝3👎2
Интерфейсы и абстрактные классы в C++ позволяют создавать гибкие и масштабируемые архитектуры, отделяя реализацию от интерфейса.
Это позволяет различным классам использовать одни и те же методы, обеспечивая более высокую модульность и повторное использование кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🤝15👍5👎1