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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👩‍💻 Move-семантика и rvalue ссылки в C++

Move-семантика — это механизм C++, который позволяет эффективно перемещать ресурсы, избегая затратных копирований объектов.

Использование rvalue ссылок и функции move() помогает оптимизировать работу с временными объектами.

Особенности и использование смотри в картинках выше!


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥66👍16🤝16
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
👍27🔥6
📱 Базовая шпаргалка по 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
🔥39🤝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
🔥50🤝19👍8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍69🔥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
🔥32👍13🤝31
📖 С++ Шаг за шагом

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

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


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

📣 C++ Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥7🤝3👎2