Эти инструменты позволяют лаконично работать с векторами, map и любыми другими коллекциями. Больше никакого .first и лишних итераторов.
Основные моменты:
• range-based for — простой способ пройтись по элементам
• structured bindings — распаковка ключа и значения
• auto / auto& / const auto& — управляем копированием и доступом
🔥 — если узнал что-то новое
🤝 — если уже пользуешься
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝39🔥17👍6❤1
Проверяем предположения с помощью assert!
Сейчас научимся использовать
Подключим нужную библиотеку — она уже есть в стандартной поставке:
Вставляем проверку, которая должна быть всегда верной при корректной работе программы:
Если условие внутри assert() ложно, программа остановится и покажет точку сбоя. Это помогает сразу увидеть, где нарушено предположение.
Пример с указателем:
Возможный результат при запуске (если условие нарушено):
🔥 Таким образом ты можешь на лету проверять важные условия по типу диапазонов или нулевых указателей.
📣 C++ Ready | #практика
Сейчас научимся использовать
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
🔥 Таким образом ты можешь на лету проверять важные условия по типу диапазонов или нулевых указателей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍10❤6
•
std::reduce
— выполняет свёртку диапазона значений. По умолчанию складывает элементы, но можно задать и другую бинарную операцию. •
std::partition
— перегруппировывает элементы контейнера: сначала идут те, что удовлетворяют условию, затем все остальные. 🔥 — если узнал что-то новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44🤝5❤4
В этой статье:
• Как создать окно SFML и настроить главный цикл с обработкой событий
• Реализация singleton-контроллера для управления движением по клавишам
• Подключение и отображение текстур в игровом цикле
🔊 Советую продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤8🔥5👎1
Хеш строки — это число, которое с высокой вероятностью соответствует её содержимому. Сравнивать строки посимвольно — долго, а хеш делает это мгновенно.
Ключевые моменты:
• Быстрое сравнение строк: O(1) вместо O(n)
• Префиксные хеши и степени P для быстрого доступа к любой подстроке.
• Каждый символ влияет на хеш своей позицией и значением.
🔥 — если узнал что-то новое
🤝 — если уже пользовался
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 как мини-таблицу — каждая строка превращается в вектор значений. Всё это делается с помощью
stringstream
и getline
— удобно и без лишнего кода.Ключевые моменты:
• Используем getline для чтения по запятой.
• Каждую строку разбиваем на ячейки, получаем вектор строк.
• Собираем таблицу из таких строк vector<vector<string>>.
🔥 — если попробуешь реализовать
🤝 — если уже парсил CSV
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39🤝15❤10👍5