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

Автор: @energy_it

Заявление в РКН: № 6382873737

Реклама на бирже: https://telega.in/c/cpp_ready
Download Telegram
Что же выведет консоль?
Anonymous Quiz
67%
A
17%
B
9%
C
7%
D
👍15🔥74
👩‍💻 Ловим ответ быстрым делением пополам!

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

В этом посте:

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

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

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


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

📣 C++ Ready | #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥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
👍21🔥125
👩‍💻 Рассмотрим 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
🔥18🤝96👍4
Простой мини-логгер на 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
🔥188👍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
20👍7🔥5😁2
— Ты уволен
— Почему?
— Мы оплатили GPT-5, ты больше не нужен.


Вы тоже в ах@е с такого расклада? Учился лет 5, потом столько же батрачил за копейки ради опыта — чтобы тебя заменила еб@чая железяка.

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

Чтобы в кратчайшие сроки выйти на уровень элиты и стать топом в сфере — подпишитесь на канал @devsp. Его автор раскрывает неочевидные секреты: как в 3 месяца уместить 6 лет обучения, достойно пройти любое собеседование и что делать, чтобы лучшие компании дрались за вас.

А временами подкидывает крутые вакансии и лайфхаки, после которых вас с руками оторвут даже без опыта.

Это всё равно что встретить Нео и войти в 10% тех, кто сломал систему. Подписывайтесь: @devsp
👎24😁4
👩‍💻 Когда сортировка подчиняется вашим правилам?

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

В этом гайде:

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

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

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


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍4🤝2