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

Автор: @energy_it

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

Реклама на бирже: 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
🔥12🤝65👍5
Подсказки компилятору — атрибуты [[likely]] и [[unlikely]] в C++20

В современном C++ важно не только *что* делает код, но и *как часто* выполняются разные ветки. Атрибуты [[likely]] и [[unlikely]] помогают подсказать компилятору, какие условия встречаются чаще — это может улучшить branch prediction и чуть ускорить критичные участки.

С C++20 можно писать так:
int classify(int x) {
if (x >= 0) [[likely]] {
return 1; // «обычный» путь
} else [[unlikely]] {
return -1; // редкий случай
}
}

int main() {
std::cout << classify(10) << "\n"; // чаще
std::cout << classify(-5) << "\n"; // реже
}


Здесь мы явно говорим компилятору: позитивные значения — норма, отрицательные — редкость. Внутри if это выглядит аккуратно, без лишних макросов и #ifdef.

Атрибуты также работают в switch:
const char* to_string_error(int code) {
switch (code) {
case 0:
[[likely]];
return "OK";
case 1:
return "Network error";
default:
[[unlikely]];
return "Unknown error";
}
}

Здесь case 0 — самый вероятный путь, а default помечен как маловероятный, но важный для диагностики.

🔥 Такие подсказки не гарантируют ускорения, но помогают компилятору лучше оптимизировать горячие участки и делают намерения разработчика явными прямо в коде.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥10👍7🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Программисты из CodeGuard слили в телеграмм тонны инфы

🔥 Отсортировали и разбили по каналам:

|- - -
📂 Python — 428ГБ
|
|- - -
📂 Хакинг & infosec — 573ГБ
|
|- - -
📂 Linux & Bash — 652ГБ
|
|- - -
📂 Работа IT — 356ГБ
|
|- - -
📂 Общее IT — 1526ГБ

📌 Гайды, шпаргалки, книги, задачи и ресурсы для каждого.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
👩‍💻 Прокачиваем свою память при помощи мини-игры "Запомни число"

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

В этой задаче:

Соберёшь короткую игру, которая проверяет внимательность и память;

Почувствуешь, как несколько секунд ожидания создают лёгкое напряжение;

Увидишь, как привычное окно превращается в маленький полигон.


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

📣 C++ Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2112🤝6
👩‍💻 Вектор под контролем!

Прокачай std::vector так, чтобы он работал на тебя, а не против. Заранее резервируй память, аккуратно вставляй и удаляй элементы, конструируй объекты прямо внутри контейнера и безболезненно ходи в C-API через data().

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥32🤝2