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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
Проверяем предположения с помощью assert!

Сейчас научимся использовать assert() для быстрого выявления ошибок во время выполнения программы. Это пригодится при отладке и проверке логики.

Подключим нужную библиотеку — она уже есть в стандартной поставке:
#include <cassert>


Вставляем проверку, которая должна быть всегда верной при корректной работе программы:
int x = getValue();
assert(x >= 0); // программа завершится, если x < 0


Если условие внутри assert() ложно, программа остановится и покажет точку сбоя. Это помогает сразу увидеть, где нарушено предположение.

Пример с указателем:
int* ptr = getPointer();
assert(ptr != nullptr); // защита от разыменования нулевого указателя


Возможный результат при запуске (если условие нарушено):
Assertion failed: ptr != nullptr, file main.cpp, line 6


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

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍106
👩‍💻 Сегодня разбираем два полезных метода из стандартной библиотеки C++ — для работы с данными и их организации:

std::reduce — выполняет свёртку диапазона значений. По умолчанию складывает элементы, но можно задать и другую бинарную операцию.

std::partition — перегруппировывает элементы контейнера: сначала идут те, что удовлетворяют условию, затем все остальные.

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


📣 C++ Ready | #метод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44🤝54
😎 Нашёл полезную статью на Хабре — отличный пример, как начать писать простую игру на C++ с помощью SFML!

В этой статье:
• Как создать окно SFML и настроить главный цикл с обработкой событий
• Реализация singleton-контроллера для управления движением по клавишам
• Подключение и отображение текстур в игровом цикле

🔊 Советую продолжить читать на Habr!


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍158🔥5👎1
👩‍💻 В этом посте разберем хеши — инструмент, который ускоряет работу со строками за счёт перевода текста в числа.

Хеш строки — это число, которое с высокой вероятностью соответствует её содержимому. Сравнивать строки посимвольно — долго, а хеш делает это мгновенно.

Ключевые моменты:

Быстрое сравнение строк: O(1) вместо O(n)

Префиксные хеши и степени P для быстрого доступа к любой подстроке.

Каждый символ влияет на хеш своей позицией и значением.


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


📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43🤝11👍5👎2
👩‍💻 Парсинг CSV-таблицы — простой способ превратить строки в структуру данных!

В этой задаче мы разбираем строки CSV как мини-таблицу — каждая строка превращается в вектор значений. Всё это делается с помощью stringstream и getline — удобно и без лишнего кода.

Ключевые моменты:
Используем getline для чтения по запятой.

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

Собираем таблицу из таких строк vector<vector<string>>.


🔥 — если попробуешь реализовать
🤝 — если уже парсил CSV


📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39🤝1510👍5
👩‍💻 Рассмотрим mutex — точная синхронизация потоков!

Синхронизация потоков — важная часть многопоточного программирования. В этом помогут основные приёмы работы с мьютексами: блокировка, безопасное управление через RAII-обёртки и приёмы избежания дедлоков.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3912👍8🤝3
👩‍💻 Погружаемся в noexcept — как сделать функции предсказуемыми!

Указывая noexcept, ты даёшь понять компилятору: исключений не будет. Это позволяет лучше оптимизировать код и безопасно вызывать функцию в критичных местах.

Что важно знать:
Ускоряет перемещения (STL-контейнеры этому особенно радуются)

Помогает писать надёжный код без сюрпризов.

Можно делать условным — полезно в шаблонах.


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


📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47🤝129