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

Автор: @energy_it

РКН: https://clck.ru/3QREHc

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
👩‍💻 Когда запуск задачи важнее самой задачи?

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

В этом гайде:

Когда начинать работу, чтобы отклик был быстрее;

Экономим ресурсы, не делая лишних действий заранее;

Как проверять поведение, не вмешиваясь в процесс.


Запускайте работу вовремя, объясняйте выбор просто, показывайте выгоду, убирайте лишний шум постоянно.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2010👍7🤝2
Что же выведет консоль?
Anonymous Quiz
67%
A
17%
B
9%
C
7%
D
👍16🔥74
👩‍💻 Ловим ответ быстрым делением пополам!

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

В этом посте:

Идея занимает пару строк, а пользы море;

Проверка понятна новичку и не путает опытных;

Подходит как для игрушек, так и серьёзных систем.


Попробуйте этот приём однажды, и код начнёт выдавать результат быстрее, чем вы успеете щёлкнуть пальцами.

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥6👍3🤝3😁1
Как не засорять область видимости временными переменными?

Классический C++-код часто выглядит так:
auto it = scores.find("neo");
if (it != scores.end()) {
std::cout << it->second;
}


it живёт дальше по коду, хотя нужен только для одного if.
Легко случайно переиспользовать его в другом месте.

С C++17 можно объявить переменную прямо в условии:
if (auto it = scores.find("neo"); it != scores.end()) {
std::cout << "Score: " << it->second << '\n';
} else {
std::cout << "Not found\n";
}


Тот же приём работает и для switch, while и даже проверки результата парсинга или открытия файла.

🔥 Полезно везде, где переменная нужна ровно для одной проверки — например, find(), lock_guard, результат парсера, дескриптор ресурса.

📣 C++ Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥135
👩‍💻 Рассмотрим thread — простой и эффективный способ добавить параллельность в свой код!

Создавай параллельные потоки и управляй их завершением через join() или detach(). Это повышает производительность, но важно контролировать жизненный цикл потоков, чтобы избежать ошибок и утечек ресурсов.

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🤝106👍3
Простой мини-логгер на std::format!

Хотите простой и лёгкий логгер с уровнями и метками времени без внешних библиотек?

Подключаем заголовки:
#include <iostream>
#include <chrono>
#include <format>
#include <string_view>


Определяем уровни и функцию вывода:
enum class Level { INFO, WARN, ERROR };

void log(Level lvl, std::string_view msg) {
auto now = std::chrono::system_clock::now();
auto ts = std::format("{:%H:%M:%S}", now);
std::print("[{}][{}] {}\n",
ts,
lvl==Level::INFO ? "I" : lvl==Level::WARN ? "W" : "E",
msg);
}


Используем в main() для разных уровней:
int main() {
log(Level::INFO, "Приложение запущено");
log(Level::WARN, "Память близка к лимиту");
log(Level::ERROR, "Ошибка при инициализации");
return 0;
}


🔥 Мини-логгер на чистом стандарте обеспечивает гибкие уровни и метки времени без лишних зависимостей.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥208👍5😁1
Как избежать скрытых багов из-за неявных конверсий enum?

enum class решает проблему одним движением: каждое перечисление становится полноценным типом.

Классические перечисления ведут себя как обычные int и легко «скрещиваются» друг с другом:
enum Status { Ok, Error };
enum Color { Red, Green };

set_status(Red); // компилируется без варнингов!


Передать Color вместо Status больше не получится — компилятор остановит сборку (см. код на картинке).

🔥 Используйте enum class по умолчанию; к старым enum возвращайтесь лишь ради legacy-кода.

📣 C++ Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍8🔥5😁2
👩‍💻 Когда сортировка подчиняется вашим правилам?

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

В этом гайде:

Разберём, как описывать порядок элементов простыми условиями;

Покажем, как добавить второй признак сравнения без шума;

Научимся быстро менять логику сортировки под разные задачи


Освоив такие приёмы, вы перестанете бояться сложных списков и будете управлять ими уверенно каждый день.

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝95👍5