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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👩‍💻 Уже работали с управлением памяти?

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

Основные моменты:

• Выделение памяти — new для выделения памяти в динамической памяти.

• Освобождение памяти — delete для освобождения выделенной памяти.

• Массивы — Для массивов используйте new[] и delete[].


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝47🔥23👍2
Что выведет консоль?
Anonymous Quiz
47%
A
43%
B
4%
C
6%
D
👍16🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
Stepik — это обучающая платформа, которая предоставляет онлайн-курсы и интерактивные задания по программированию

📌 Ссылочка: stepik.org

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17😁9🔥2
👩‍💻 Язык программирования C/C++ для начинающих

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

Ссылочка на плейлист: YouTube 🖤


📣 C++ Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥5🤝1
😎 На Хабре нашлась интересная статья. В ней автор рассказывает как сделать полноценный 3D рендер в консоли.

В этой статье:
• Вы узнаете, как сделать 3D рендер прямо в консоли без каких-либо графических библиотек с помощью метода Raycast.

🔊Если заинтересовало, можешь продолжить читать на Habr!


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😁4👎1🔥1
👩‍💻 Работали уже с шаблонными функциями?

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

Вот общий синтаксис для объявления шаблона функции:
template <typename T>
T functionName(T parameter1, T parameter2) {
// Тело функции
}


📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍5😁1
This media is not supported in your browser
VIEW IN TELEGRAM
learncpp — сайт, который предлагает полное и пошаговое руководство по изучению C++, охватывающее как основные, так и продвинутые концепции с практическими примерами и заданиями.

📌 Ссылочка: learncpp.com

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍5
Рекурсия в C++: что нужно знать, чтобы избежать ошибок
#новичкам

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

Простейший пример — вычисление факториала. Например, функция принимает число n и возвращает результат умножения всех чисел от 1 до n. Здесь важно предусмотреть базовый случай, который завершает рекурсию:
int factorial(int n) {  
return (n == 0) ? 1 : n * factorial(n - 1);
}


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


А для оптимизации можно использовать хвостовую рекурсию. Это способ передачи промежуточного результата через параметры функции, чтобы минимизировать затраты на стек вызовов:
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
🔥16👍5
👩‍💻 Изучение ООП на C++

Объемный плейлист из 38 уроков, посвящённых программированию ООП языка C++. В курсе вы познакомитесь с классами, конструкторами и множеством методов.

Ссылочка на плейлист: YouTube 🖤


📣 C++ Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Bots Are Stupid — это головоломка, где вы пишете код, чтобы направить ботов через сложные платформенные уровни, решая задачи с точностью и логикой.

Ссылочка на игру: Steam 🙄


📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6
👩‍💻 Многопоточное программирование на С++

Хороший бесплатный курс, в котором вы обучитесь межпроцессному взаимодействию (IPC), синхронизации потоков и рассмотрите разработку сетевых систем.

В него входит:
30 уроков
19 интерактивных задач
36 тестов


Пройти его можешь на Stepik

📣 C++ Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Знаете как можно почистить кэш браузера?

С помощью Clear Cache — расширение для Chrome, которое с лёгкостью позволяет отчистить кэш браузера.

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

⬇️ Скачать расширение

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5😁2👎1
Знакомы с базовыми принципами работы с ассоциативными контейнерами?
#новичкам

Сегодня разберём один из самых полезных контейнеров в C++ — std::map. Это не просто "ассоциативный массив", а гибкая структура данных, которая автоматически упорядочивает элементы по ключам и позволяет эффективно работать с парами "ключ-значение".

Для начала создадим пустую структуру, например, для хранения возрастов:
std::map<std::string, int> ages;


После этого мы можем добавить элементы:
ages["Alice"] = 25;  
ages["Bob"] = 30;


Элементы добавляются в виде пар: строка — это ключ, а число — значение. И чтобы получить значение по ключу
int aliceAge = ages["Alice"];  // 25


Но есть важный момент! Если ключа не существует, std::map автоматически создаёт новый элемент с дефолтным значением (например, 0 для чисел). Чтобы избежать этого, используем метод find():
if (ages.find("Charlie") != ages.end()) {  
std::cout << "Charlie найден!\n";
} else {
std::cout << "Charlie отсутствует.\n";
}


А вот удаление элементов выполняется с помощью метода erase():
ages.erase("Alice");  // Удаляет элемент с ключом "Alice"


Вот вам под конец полезный трюк: Можно легко обойти все элементы в std::map с помощью цикла for:
for (const auto& [key, value] : ages) {  
std::cout << key << ": " << value << '\n';
}


🔥 Но помните, что std::map не такой быстрый, как unordered_map, для операций поиска. Используйте его, если вам важна упорядоченность.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍5😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Знали про этот плагин для VS Code? 😮

C++ Helper —
расширение для Visual Studio Code, которое упрощает разработку на C++. Предоставляет авто дополнение для синтаксиса и методов, интеграцию с GDB для отладки с точками останова и пошаговым выполнением.

Также есть автоматическое форматирование кода и возможность генерировать шаблоны для часто используемых конструкций.

📣 C++ Ready | #плагин
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4
😂

С добрым утром! ☕️
Please open Telegram to view this post
VIEW IN TELEGRAM
😁56👍9