Делаем простой парсер CLI-флагов на C++!
Нужно быстро разобрать аргументы командной строки без сторонних библиотек? Соберём мини-парсер, который понимает формат --key=value и отдельные boolean-флаги вроде --verbose.
В этой задаче:
Такой подход удобен для утилит и инструментов где не хочется подключать полноценный CLI-фреймворк.
📣 C++ Ready | #задача
Нужно быстро разобрать аргументы командной строки без сторонних библиотек? Соберём мини-парсер, который понимает формат --key=value и отдельные boolean-флаги вроде --verbose.
В этой задаче:
• Храним аргументы в unordered_map;
• Разбираем значения через знак =;
• Поддерживаем флаги без значения.
Такой подход удобен для утилит и инструментов где не хочется подключать полноценный CLI-фреймворк.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6🔥2😁1
Интересная статья про попытку сделать игру на C++ через Raylib и лучше понять язык на практике!
В этой статье:
• Как Raylib помогает быстро начать с графикой, вводом и игровой логикой
• Почему C++ нельзя воспринимать как “Java с другим синтаксисом”
• Какие нюансы объектов, указателей и this всплывают уже в простом игровом коде
📣 C++ Ready | #статья
В этой статье:
• Как Raylib помогает быстро начать с графикой, вводом и игровой логикой
• Почему C++ нельзя воспринимать как “Java с другим синтаксисом”
• Какие нюансы объектов, указателей и this всплывают уже в простом игровом коде
Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥4
Разберём std::chrono: 7 вещей для нормальной работы со временем в C++!
В C++ не стоит хранить таймауты и задержки просто в int, потому что быстро теряется смысл числа: секунды это, миллисекунды или что-то ещё. std::chrono делает единицы измерения частью типа и помогает писать более читаемый код.
В этой шпоре:
Такой подход особенно полезен в таймерах, retry-логике, логировании, сетевых запросах и измерении производительности.
📣 C++ Ready | #шпора
В C++ не стоит хранить таймауты и задержки просто в int, потому что быстро теряется смысл числа: секунды это, миллисекунды или что-то ещё. std::chrono делает единицы измерения частью типа и помогает писать более читаемый код.
В этой шпоре:
• чем steady_clock отличается от system_clock;
• как хранить длительность через duration;
• как задавать миллисекунды и секунды;
Такой подход особенно полезен в таймерах, retry-логике, логировании, сетевых запросах и измерении производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤7🤝6👍5
Шпаргалка по новым возможностям C++17!
Например, structured bindings позволяют удобно распаковывать пары и tuple, а if constexpr помогает выбирать ветку кода на этапе компиляции.
На картинке ключевые фичи C++17: class template argument deduction, fold expressions, constexpr lambda, inline variables, nested namespaces, structured bindings, initializers в if/switch, [[fallthrough]], [[nodiscard]], [[maybe_unused]] и другие изменения языка.
Сохрани, чтобы не потерять!
📣 C++ Ready | #ресурс
Например, structured bindings позволяют удобно распаковывать пары и tuple, а if constexpr помогает выбирать ветку кода на этапе компиляции.
На картинке ключевые фичи C++17: class template argument deduction, fold expressions, constexpr lambda, inline variables, nested namespaces, structured bindings, initializers в if/switch, [[fallthrough]], [[nodiscard]], [[maybe_unused]] и другие изменения языка.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥3😁2
Считаем топ самых частых слов на C++!
Иногда нужно быстро понять, какие слова чаще всего встречаются в тексте: в логах, комментариях, поисковых запросах или простом анализаторе.
Сначала заведём счётчик:
Разобьём строку на слова:
Теперь переложим пары в vector:
Отсортируем по частоте:
Выведем первые 3 слова:
Для строки:
Ожидаемый результат:
Такой анализатор показывает связку,
📣 C++ Ready | #практика
Иногда нужно быстро понять, какие слова чаще всего встречаются в тексте: в логах, комментариях, поисковых запросах или простом анализаторе.
Сначала заведём счётчик:
std::unordered_map<std::string, int> freq;
Разобьём строку на слова:
std::istringstream in(text);
std::string word;
while (in >> word) {
++freq[word];
}
Теперь переложим пары в vector:
std::vector<std::pair<std::string, int>> items(
freq.begin(), freq.end()
);
Отсортируем по частоте:
std::sort(items.begin(), items.end(),
[](const auto& a, const auto& b) {
return a.second > b.second;
});
Выведем первые 3 слова:
for (std::size_t i = 0; i < std::min<std::size_t>(3, items.size()); ++i) {
std::cout << items[i].first << ": " << items[i].second << '\n';
}Для строки:
std::string text = "cpp java cpp rust cpp java";
Ожидаемый результат:
cpp: 3
java: 2
rust: 1
Такой анализатор показывает связку,
unordered_map считает частоты, а vector + sort помогает быстро получить топ значений.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍5🔥4
Делаем простой string pool на C++!
Если в программе много повторяющихся строк вроде ролей, статусов, тегов или категорий, их можно хранить в одном месте и переиспользовать. Для этого подойдёт небольшой пул строк на базе std::unordered_set.
В этой задаче:
Такой приём помогает уменьшить лишние копии и сделать работу с повторяющимися строками аккуратнее.
📣 C++ Ready | #задача
Если в программе много повторяющихся строк вроде ролей, статусов, тегов или категорий, их можно хранить в одном месте и переиспользовать. Для этого подойдёт небольшой пул строк на базе std::unordered_set.
В этой задаче:
• храним уникальные строки;
• добавляем значение через insert;
• возвращаем ссылку на сохранённую строку;
Такой приём помогает уменьшить лишние копии и сделать работу с повторяющимися строками аккуратнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥3😁1
Media is too big
VIEW IN TELEGRAM
Modern C++ Tutorial — гид по возможностям C++11–C++26!
На сайте собран открытый учебник по современному C++:
📣 C++ Ready | #ресурс
На сайте собран открытый учебник по современному C++:
auto, range-based for, lambda-выражения, rvalue references, move semantics, smart pointers, concurrency, templates, type traits, constexpr, filesystem и другие возможности новых стандартов. Материал хорошо подходит тем, кто уже знает базовый C++, но хочет перейти от старого стиля к современным приёмам и лучше понимать, зачем появились новые конструкции языка.Оставляю ссылочку: Modern C++ Tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6❤5
Разбираем std::unordered_map 7 методов для работы с ключами!
std::unordered_map удобен, когда нужен быстрый доступ по ключу без сортировки. Внутри это хеш-таблица, поэтому важно не только доставать значения, но и правильно добавлять, обновлять и заранее готовить место.
Полезно для кешей, индексов, счётчиков, таблиц соответствий и быстрых lookup-структур.
📣 C++ Ready | #шпора
std::unordered_map удобен, когда нужен быстрый доступ по ключу без сортировки. Внутри это хеш-таблица, поэтому важно не только доставать значения, но и правильно добавлять, обновлять и заранее готовить место.
Полезно для кешей, индексов, счётчиков, таблиц соответствий и быстрых lookup-структур.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3