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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
Что же выведет консоль?
Anonymous Quiz
62%
A
18%
B
3%
C
16%
D
🔥11👍7🤝1
Сегодня мы посвятим время важной теме — использованию макросов в C++ с помощью директивы препроцессора #define.

Макросы в C++ представляют собой механизм текстовой подстановки, реализуемый посредством директивы #define. Они позволяют задавать именованные константы и создавать макрофункции — фрагменты кода, которые заменяются непосредственно в исходном коде на этапе препроцессинга.

Например, часто встречается макрос для задания константы:
#define PI 3.14159 // Значение числа π


После его определения PI можно использовать как числовую константу:
double r = 10;
double S = PI * r * r; // Вычисляем площадь круга с радиусом 10


Еще одно полезное применение макросов — вычисление количества элементов в статическом массиве:
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))


Этот макрос позволяет получить размер массива без необходимости вручную пересчитывать элементы:
int numbers[] = {1, 2, 3, 4, 5};
int size = ARRAY_SIZE(numbers); // size будет равен 5


Но следует помнить, ARRAY_SIZE() корректно работает только со статическими массивами. Если передать в него указатель (например, динамический массив), результат будет некорректным.

🔥 Если вы хотите углубить свои знания по этой теме, не стесняйтесь писать в комментариях!

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍10👎2
👩‍💻 В этом посте расскажу про базовую работу с контейнером set для новичков!

Set — это контейнер из стандартной библиотеки STL для хранения уникальных элементов в отсортированном виде. Он реализован на основе красно-черного дерева, поэтому вставка, удаление и поиск выполняются за счет O(log n).

Основные моменты:
insert — добавление элемента
erase — удаление элемента
find — поиск элемента


🔥 — если узнал новое
🤝 — если уже использовал

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25🤝16👍9
Очень интересная статья с Хабра, в которой вы узнаете, как собирать библиотеки на языках C/C++.

В этой статье:
• Статические и динамические библиотеки
• Искажение имён
• Создание своей библиотеки

🔊 Советую продолжить читать на Habr!


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6👎1
Итераторы в C++ — удобный способ работы с контейнерами
#новичкам

Итератор — это объект, который позволяет перемещаться по элементам контейнера. Он похож на указатель, но работает с контейнерами стандартной библиотеки, такими как vector, map, set или list.

Рассмотрим итераторы на примере std::vector<int>, для начала создадим и присвоим значение:
std::vector<int> numbers = {1, 2, 3, 4, 5};


Далее можно обойти все элементы с помощью итератора it. Здесь begin() возвращает итератор на первый элемент, а end() — на элемент за последним:
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << " ";
}


А теперь упростим запись, используя range-based for. Первым аргументом мы должны обозначить тип элемента массива, чаще всего используют auto, далее записываем название элемента на каждом цикла и через : пишем название самой структуры:
for (auto num : numbers) {
std::cout << num << " ";
}


🔥 Такой способ удобнее, особенно для простых случаев. Однако итераторы остаются мощным инструментом, позволяя работать со сложными структурами данных.

📣 C++ Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6
🔥41😁29👍10👎1
👩‍💻 Курс по стандарту языка С++

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

Ссылочка на плейлист: YouTube 🖤


📣 C++ Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥6👎1
😎 Нашел очередную полезную статью с Яндекс Дзена, в которой представлен пример создания простой нейросети на языке С++.

В этой статье:
• Архитектура нейронной сети
• Используемые алгоритмы

• Процесс обучения

🔊 Советую продолжить читать в Дзене


📣 C++ Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5👎1
👩‍💻 Познакомимся с двумя методами для асинхронного выполнения и безопасного хранения типов в C++

std::async — выполняет функции в отдельных потоках, управляя ими автоматически. Результат выполнения возвращается через std::future, что упрощает работу с асинхронными задачами.

std::variant — позволяет хранить значения разных типов в одной переменной, гарантируя, что в каждый момент времени используется только один тип. Это исключает ошибки приведения и делает код более надежным.

🔥 — если узнал новое
🤝 — если уже пользовался

📣 C++ Ready | #метод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍4
👩‍💻 В этом посте разберем возможности спецификатора C++ constexpr для новичков!

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

Основные моменты:
• constexpr функции — вычисление значений на этапе компиляции
• constexpr переменные — создание неизменяемых констант
Применение для определения размеров массивов и оптимизации программ


🔥 — если узнал новое
🤝 — если уже использовал

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25🤝8👍6