C/C++ Ready | Программирование @cpp_ready Channel on Telegram

C/C++ Ready | Программирование

@cpp_ready


Авторский канал по разработке на C и C++.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_it

C/C++ Ready | Программирование (Russian)

Добро пожаловать на канал C/C++ Ready в мессенджере Telegram! Этот канал предназначен для всех, кто интересуется программированием на языках C и C++. Здесь вы найдете разнообразные ресурсы, обучающие материалы, интересные задачи для практики и полезные шпаргалки. Ежедневно канал обновляется новой информацией, чтобы помочь вам улучшить ваши навыки программирования на C и C++

Автор канала - @energy_it, который делится своим опытом и знаниями в области разработки на этих языках. Присоединяйтесь к сообществу C/C++ Ready и станьте частью активного обучающего процесса. Не упустите возможность улучшить свои навыки программирования и оставайтесь в курсе последних тенденций в мире C и C++! Уже сегодня начните свое программистское путешествие с C/C++ Ready!

C/C++ Ready | Программирование

17 Jan, 08:12


Знакомы с базовыми принципами работы с ассоциативными контейнерами?
#новичкам

Сегодня разберём один из самых полезных контейнеров в C++ — std::map. Это не просто "ассоциативный массив", а гибкая структура данных, которая автоматически упорядочивает элементы по ключам и позволяет эффективно работать с парами "ключ-значение".

Для начала создадим пустую структуру, например, для хранения возрастов:
std::map<std::string, int> ages;


После этого мы можем добавить элементы:
ages["Alice"] = 25;  
ages["Bob"] = 30;


Элементы добавляются в виде пар: строка — это ключ, а число — значение. И чтобы получить значение по ключу
int aliceAge = ages["Alice"];  // 25


Но есть важный момент! Если ключа не существует, std::map автоматически создаёт новый элемент с дефолтным значением (например, 0 для чисел). Чтобы избежать этого, используем метод find():
if (ages.find("Charlie") != ages.end()) {  
std::cout << "Charlie найден!\n";
} else {
std::cout << "Charlie отсутствует.\n";
}


А вот удаление элементов выполняется с помощью метода erase():
ages.erase("Alice");  // Удаляет элемент с ключом "Alice"


Вот вам под конец полезный трюк: Можно легко обойти все элементы в std::map с помощью цикла for:
for (const auto& [key, value] : ages) {  
std::cout << key << ": " << value << '\n';
}


🔥 Но помните, что std::map не такой быстрый, как unordered_map, для операций поиска. Используйте его, если вам важна упорядоченность.

📣 C++ Ready | #практика

C/C++ Ready | Программирование

16 Jan, 10:12


Знаете как можно почистить кэш браузера?

С помощью Clear Cache — расширение для Chrome, которое с лёгкостью позволяет отчистить кэш браузера.

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

⬇️ Скачать расширение

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

14 Jan, 08:12


Рекурсия в C++: что нужно знать, чтобы избежать ошибок
#новичкам

Рекурсия — это способ, при котором функция вызывает саму себя для решения задач, разделяя их на более простые подзадачи.

Простейший пример — вычисление факториала. Например, функция принимает число n и возвращает результат умножения всех чисел от 1 до n. Здесь важно предусмотреть базовый случай, который завершает рекурсию:
int factorial(int n) {  
return (n == 0) ? 1 : n * factorial(n - 1);
}


Однако, если базовый случай отсутствует, программа уйдёт в бесконечный цикл, что вызовет переполнение стека и такая ошибка приведёт к краху программы, поэтому всегда нужно чётко определять момент завершения:
void infiniteRecursion() {
infiniteRecursion(); // рекурсия без выхода
}


А для оптимизации можно использовать хвостовую рекурсию. Это способ передачи промежуточного результата через параметры функции, чтобы минимизировать затраты на стек вызовов:
int tailFactorial(int n, int result = 1) {  
return (n == 0) ? result : tailFactorial(n - 1, result * n);
}


🔥 Так что эти простые приёмы помогут вам избежать ошибок и написать более эффективный код. Удачи!

📣 C++ Ready | #практика

C/C++ Ready | Программирование

13 Jan, 11:44


learncpp — сайт, который предлагает полное и пошаговое руководство по изучению C++, охватывающее как основные, так и продвинутые концепции с практическими примерами и заданиями.

📌 Ссылочка: learncpp.com

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

08 Jan, 10:37


👩‍💻 Работали уже с шаблонными функциями?

Они позволяют создавать функции, которые могут принимать параметры различных типов. При вызове функции компилятор генерирует конкретную версию функции для каждого типа.

Вот общий синтаксис для объявления шаблона функции:
template <typename T>
T functionName(T parameter1, T parameter2) {
// Тело функции
}


📣 C++ Ready | #гайд

C/C++ Ready | Программирование

08 Jan, 08:37


⚡️ 72% программистов не имеют среднего образования

Наше поколение — самоучки, а изучить любое IT-направление легко благодаря нашему ресурсу с полезными материалами:

👩‍💻 JavaScript 👩‍💻 React
👩‍💻 Python 👩‍💻 Docker
👩‍💻 Java 🖼️ Spring
👩‍💻 C# 👩‍💻 Game Dev
👩‍💻 С/С++ 👩‍💻 DevOps
👣 GoLang 🖼️ Redis
👩‍💻 Kotlin 👩‍💻 Mob Dev
🖼️ PHP 🖥 SQL
🖼️ Swift 👩‍💻 Kubernetes

Пользуйтесь, потом сами себе спасибо скажете!

C/C++ Ready | Программирование

07 Jan, 08:17


⚡️ В сети начали массово сливать курсы и книги известных онлайн школ

Вот отсортированная база с тонной материала(постепенно пополняется):

БАЗА (4687 видео/книг):

(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(107 видео, 43 книги) — СисАналз
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — UI/UX
(129 видео, 73 книги) — QA
(213 видео, 63 книги) — Rust
(121 видео, 24 книги) — Ruby

Скачивать ничего не нужно — все выложили в Telegram

C/C++ Ready | Программирование

06 Jan, 14:00


Stepik — это обучающая платформа, которая предоставляет онлайн-курсы и интерактивные задания по программированию

📌 Ссылочка: stepik.org

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

31 Dec, 19:46


Вот и конец 2024 года... Каждого хочу поблагодарить за поддержку, каналу всего 4 месяца, а уже такие результаты. Желаю чтобы в новом году каждый выполнил свои цели и стал лучше версией себя.

С наступающим новым годом! 🥂

C/C++ Ready | Программирование

30 Dec, 14:17


☕️ Вот с чего точно стоит начинать изучение проги:

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

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

23 Dec, 08:12


👩‍💻 Методы для работы с массивами

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

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

20 Dec, 08:12


Сегодня поговорим про компараторы — ключевой инструмент для сортировки в STL.

Это функции, которые задают правила сравнения элементов. Они позволяют сортировать данные не только по возрастанию, но и в произвольном порядке.

Для начала, напишем простую функцию-компаратор для сортировки по возрастанию:
bool compare(int a, int b) {
return a < b; // Возвращает true, если a меньше b
}


И также используем этот компаратор для сортировки вектора:
std::vector<int> vec = {5, 3, 8, 1, 2};  
std::sort(vec.begin(), vec.end(), compare);
// Теперь vec содержит: 1, 2, 3, 5, 8


Однако, если компаратор нужен только один раз, лучше использовать лямбда-функцию. Например, чтобы отсортировать данные по убыванию:
std::sort(vec.begin(), vec.end(), [](int a, int b) {  
return a > b; // Сортировка по убыванию
});
// Теперь vec содержит: 8, 5, 3, 2, 1


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


📣 C++ Ready | #практика

C/C++ Ready | Программирование

18 Dec, 10:12


Знали, что неправильное использование оператора инкремента ++ может привести к ошибкам?

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

Ошибки часто возникают, когда используем постфиксный инкремент, но хотим префиксный:
int x = 5;
int y = x++; // y = 5, x = 6
std::cout << y; // Выведет 5, а не 6


Поэтому, если нужно сразу получить новое значение переменной, юзаем префиксную форму:
int x = 5;
int y = ++x; // y = 6, x = 6
std::cout << y; // Выведет 6


И напоследок скажу, что если не важно, когда именно увеличивать переменную, то конечно уже можем использовать постфиксную форму:
int x = 5;
x++; // Просто увеличим x на 1
std::cout << x; // Выведет 6


🔥 Так что, всегда учитывайте, что в постфиксной форме сначала возвращается старое значение, а в префиксной — сразу новое.


📣 C++ Ready | #практика

C/C++ Ready | Программирование

18 Dec, 06:12


СodeRun — платформа для решения задач от Яндекса. Все задачи распределены по множество направлений и их можно решать на разных языках, включая C++.

📌 Ссылочка: coderun.yandex.ru

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

09 Dec, 10:12


Воркаем с указателями и динамической памятью 😎
#средничкам

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

Для начала создадим указатель на целое число. Это переменная, которая хранит адрес другой переменной в памяти:
int x = 10;    // Обычная переменная
int* ptr = &x; // Указатель, хранящий адрес переменной x


Чтобы получить значение, на которое указывает указатель, используем оператор разыменования *:
std::cout << *ptr;  // Выведет 10


Теперь давайте поговорим о динамической памяти. В C++ можно выделить память во время выполнения программы с помощью оператора new:
// Выделили память для одного целого числа
int* p = new int;

// Присваиваем значение 20 переменной, на которую указывает p
*p = 20;


Не забываем, что память, выделенную с помощью new, нужно освобождать с помощью оператора delete, чтобы избежать утечек памяти:
delete p;  // Освобождаем память


Если вам нужно выделить массив динамически, можно сделать это так:
int* arr = new int[5];  // Массив из 5 элементов
arr[0] = 10; // Присваиваем значение первому элементу


И не забываем освободить память после использования:
delete[] arr;  // Освобождаем память массива


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

📣 C++ Ready | #практика

C/C++ Ready | Программирование

09 Dec, 08:12


XMAS HACK к нам мчится! 

С 20 по 23 декабря под звон Jingle bells пройдет самый яркий и праздничный хакатон 2024 года - XMAS HACK. 

🎁Дед Мороз и Снегурочка уже положили под елочку XMAS HACK особый подарок - 1 000 000 рублей! 

Уникальный кейс от Интерюнис-ИТ:
Реновация пользовательского интерфейса программного обеспечения акустико-эмиссионного измерительного комплекса. 
👨‍💻Задача:
Улучшить текущий пользовательский интерфейс программы без модификации содержательной части кода. Основной фокус модификации визуальных элементов, навигации и общем удобстве использования, сохраняя при этом все существующие функциональные возможности.

🚀Осталось собрать команду и до 19 декабря подать заявку на участие: https://tglink.io/06dc53abc712?erid=LjN8KJrhZ

🎅XMAS HACK к нам мчится, скоро все случится!🌟

#реклама
О рекламодателе

C/C++ Ready | Программирование

08 Dec, 08:13


👩‍💻 Некоторые полезные функции массивов

В этом посте мы рассмотрим функции и методы C++. Знание таких инструментов позволяет ускорить выполнение повседневных задач в программировании.

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

07 Dec, 14:16


Готовишься к собеседованию в IT?

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

Выбирай направление:

👩‍💻 Frontend
👩‍💻 Python
👩‍💻 Go
👩‍💻 Java
👩‍💻 C/C++
👩‍💻 C#
👩‍💻 PHP
👩‍💻 QA
🖥 SQL
👩‍💻 Git

C/C++ Ready | Программирование

07 Dec, 08:12


Рок-группа Nanowar of Steel выпустила композицию HelloWorld, где все слова — это код из программы на Java 🤯

Проект под названием HelloWorld,java с песней на языке программирования Java опубликован на GitHub

«Добро пожаловать в первый проект Nanowar Of Steel на GitHub и первый пример песни с исходным кодом. Цель этого проекта — поддержать и обеспечить соблюдение "True Metal Programming", что по сути означает: "пиши код так плохо, чтобы только ты мог его петь", — уточнили в Nanowar of Steel.

▶️ Ну почитать подробнее и глянуть видос можешь тут - послушать имбу

📣 C++ Ready | #новость

C/C++ Ready | Программирование

06 Dec, 10:12


👩‍💻 Случайные числа: Что и как?

В C++ существует несколько способов генерации случайных чисел, от устаревших функций до современных библиотек. Рассмотрим интересные подходы, которые помогут тебе гибко генерировать случайные данные:

1. Старый способ: rand() и srand() — функция rand() генерирует псевдослучайные числа, и её начальное состояние можно задавать через srand():
#include <cstdlib>
#include <ctime>

srand(time(0));
int random_number = rand() % 100; // Число от 0 до 99
// Простое решение, но с низкой статистической случайностью


2. Использование std::random_device — генерирует более надежные случайные числа, используя аппаратный генератор (если доступен):
#include <random>

std::random_device rd;
// Генерирует 32-битное случайное число
int random_number = rd();
// Подходит для криптографии, но может быть медленным


3. Настраиваемое распределение — генератор mt19937 (Mersenne Twister) и распределения позволяют контролировать диапазон и тип случайных чисел:
#include <random>

std::mt19937 gen(std::random_device{}());
std::uniform_int_distribution<> dist(1, 10);
int random_number = dist(gen); // Число от 1 до 10
// Гибкий и современный способ генерации чисел


📣 C++ Ready | #техсобес

C/C++ Ready | Программирование

06 Dec, 05:12


The Algorithms — сайт, который предоставляет обширную коллекцию алгоритмов и структур данных, реализованных на различных языках программирования.

📌 Ссылочка: the-algorithms.com

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

05 Dec, 14:12


Знакомы с базовыми принципами работы с векторами?

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

Для начала создадим пустой вектор:
std::vector<int> numbers;  

Он уже готов к использованию, и его размер изначально равен 0.

Чтобы добавить элементы в конец вектора, используем метод push_back(). Например, добавим числа 10 и 20:
numbers.push_back(10);  
numbers.push_back(20);


Теперь он содержит два элемента. Чтобы получить доступ к ним, можно использовать индексы:
int first = numbers[0];  // Доступ к первому элементу  


Размер вектора можно изменить с помощью метода resize(). Например, чтобы увеличить размер вектора до 5 элементов:
numbers.resize(5);


И если нужно удалить последний элемент, используем метод pop_back():
numbers.pop_back();  


🔥 Правильное использование векторов — это залог удобного и безопасного управления динамическими данными.

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

📣 C++ Ready | #практика

C/C++ Ready | Программирование

21 Nov, 14:16


👩‍💻 Изучаем полезные методы работы с памятью и значениями в C++

• Optional — Позволяет безопасно обрабатывать возможные ошибки и неопределенные значения.

• Shared_ptr — Умный указатель, который автоматически управляет временем жизни объекта с использованием подсчета ссылок.

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

📣 C++ Ready | #метод

C/C++ Ready | Программирование

21 Nov, 12:12


Как начать использовать все возможности искусственного интеллекта в работе и жизни?

Рассказываем, как пользоваться нейросетями правильно и начать на этом зарабатывать на нашем бесплатном практикуме «Нейросети для жизни и карьеры»

После нашего эфира вы узнаете:
— Какие задачи может решить нейросеть, чтобы облегчить рабочие задачи;
— Сможете узнать, какие нейросети подойдут для текстов, создания сайтов или изображений;
— Увидите много примеров применения ИИ и узнаете, как нейросети помогают фрилансерам увеличить заработок в 2 раза.

Бонусом – безлимитный доступ к последней версии ChatGPT в нашем боте.

Кликайте на ссылку и забирайте подробную информацию вместе.

erid: LjN8K84n2
ООО Зерокодер, ИНН 9715401631

C/C++ Ready | Программирование

20 Nov, 10:12


👩‍💻 Рассмотрим различные функции!

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

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

20 Nov, 08:12


🔒 7539 ГБ платного контента для программистов выложили в Telegram

Выбирай направление и обучайся:

👩‍💻 Java — 644 ГБ

🖥 Python — 724 ГБ

🖥 Frontend — 981 ГБ

🖥 Backend — 817 ГБ

👩‍💻 Все языки — 4373 ГБ

Пост удалится через 48 часов 🕔

C/C++ Ready | Программирование

20 Nov, 06:12


Hacking CPP — Платформа по обучению основам программирования на C++, изучение алгоритмов, типов, различных операций и всякого такого

📌 Ссылочка: hackingcpp.com

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

19 Nov, 16:12


🖥 Неочевидные возможности C++

Рассмотрим некоторые продвинутые фишки C++, которые часто упускаются, но могут существенно улучшить ваш код.

Начнем с std::variant — позволяет хранить значения разных типов в одной переменной, что делает ваш код более безопасным и удобным по сравнению с использованием void* или сложных структур:
#include <variant>
#include <iostream>

std::variant<int, double, std::string> data = 42;
data = 3.14;
data = "Hello, C++";

std::visit([](auto&& arg) { std::cout << arg << '\n'; }, data);


Функции с constexpr могут быть вычислены компилятором во время компиляции программы, что приводит к более эффективному и быстрому коду:
constexpr int square(int x) {
return x * x;
// Функция вычисляет квадрат числа
}

constexpr int result = square(5);
// Значение вычисляется на этапе компиляции


Под конец расскажу про Structured Bindings — упрощает работу с парами, кортежами и структурами, позволяя распаковывать значения в отдельные переменные:
std::tuple<int, double, char> getValues() {
return {42, 3.14, 'A'}
}

auto [intValue, doubleValue, charValue] = getValues();
std::cout << intValue << ", " << doubleValue << ", " << charValue << '\n';


Есть идеи, что можно будет обсудить в следующем посте? Делись мнением в комментариях!

📣 C++ Ready | #практика

C/C++ Ready | Программирование

19 Nov, 14:12


⚡️Слита База из 1000+ топовых IT-курсов

👩‍💻 Все языки: https://t.me/main_it_baza

👩‍💻 Frontend: https://t.me/frontend_baza

👣 Backend: https://t.me/backend_baza

📊 Архив: https://t.me/knowledge_baza

Всё лучшее про IT бесплатно — уже на Базе 🚀

C/C++ Ready | Программирование

19 Nov, 07:12


Code Live — Платформа по обучению основам программирования на С++ для начинающих. Подробные примеры по написанию простых приложений

📌 Ссылочка: code-live.ru

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

17 Nov, 08:12


Exercism — платформа для изучения программирования через решение задач на различных языках, включая C++. На платформе есть как теоретический, так и практические материалы.

📌 Ссылочка: exercism.org

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

15 Nov, 07:12


GeeksforGeeks — это популярный онлайн-ресурс, посвященный обучению программированию и компьютерным наукам. Он предлагает широкий спектр материалов

📌 Ссылочка: geeksforgeeks.org

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

13 Nov, 09:34


👩‍💻 Шпаргалка по библиотеке Algorithm

В этой шпаргалке присутствуют функции из библиотеки <algorithm>, которые помогают в работе с текстом и другими данными

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

11 Nov, 12:12


В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн

Но где найти единую "базу" ивентов?
Чтобы "заглянул -> увидел все что есть -> выбрал -> пошел"?

🔥 Советуем обратить внимание на канал, в котором публикуют анонсы вебинаров, хакатонов, конференций, мастер-классов, ивентов от гигантов индустрии и лучших специалистов по кодингу, дизайну, аналитике и т.д.

👍  Классный и полезный канал, где вы точно не пропустите ничего важного и интересного.

🗂 IT-мероприятия России / ITMeeting / IT events — подписывайся и будь в курсе ближайших ивентов!

C/C++ Ready | Программирование

09 Nov, 09:12


🖥 Какие ключевые особенности C++11 могут улучшить производительность кода?

1. Передача значений с помощью rvalue-ссылок — Rvalue-ссылки (&&) позволяют избежать копирования при передаче временных объектов:
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = std::move(v1); // перемещение, а не копирование


2. Лямбда-функции для локальных операций — Лямбды позволяют определять короткие инлайн-функции прямо в месте использования:
auto square = [](int x) { return x * x; };
std::cout << square(5); // вывод: 25


3. auto для автоматического определения типа — его использование позволяет компилятору выбирать оптимальный тип, что позволяет избежать ошибок при аннотации типов:
auto num = 42; // num автоматически становится int


Жми 🔥 если понравился пост

📣 C++ Ready | #техсобес

C/C++ Ready | Программирование

08 Nov, 07:34


freeCodeCamp — платформа на которой вы найдете отличные видеоуроки и другие материалы на разные темы программирования, также там есть курсы по английскому, всем советую!

📌 Ссылочка: freecodecamp.org

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

07 Nov, 11:07


⚡️ В сети начали находить платный контент от известных онлайн школ в открытом доступе

Вот отсортированные базы с тонной материала(книги, курсы, ресурсы и гайды):

1. Java:
(56ГБ) — Java с нуля
(21ГБ) — Spring
(32ГБ) — Maven

2. С#:

(37ГБ) — С# с нуля
(22ГБ) — ASP.NET
(22ГБ) — Blazor

3. Хакинг & ИБ:

(72ГБ) — Соц. инженерия
(47ГБ) — OSINT
(54ГБ) — Пентест

4. С/С++:

(89ГБ) — С/C++ с нуля
(27ГБ) — Qt/gtest/gmock
(15ГБ) — Boost/CMake

5. Базы Данных & SQL:

(65ГБ) — SQL/MySQL
(21ГБ) — PostgreSQL
(32ГБ) — SQLite

Пользуемся 🔥

C/C++ Ready | Программирование

06 Nov, 14:34


👩‍💻 Шпаргалка по базовым методам и функциям

Шпаргалка с примерами по основным функциям и методам языка С++, отлично подойдет новичкам

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

06 Nov, 12:35


🌡 10ТБ Отбороного контента по программированию!!

👩‍💻 Курсы по С/С++

👩‍💻 Курсы по Python/Ruby

👩‍💻 Все языки программирования

Подписывайся:
https://t.me/+V0tByLmS0OdiZDdi

C/C++ Ready | Программирование

05 Nov, 14:12


Прими участие в «Хакатоне по кибериммунной разработке 3.0» от «Лаборатории Касперского» с призовым фондом 1 000 000 рублей!

Регистрация на хакатон открыта до 15 ноября

Приглашаем разработчиков, аналитиков, архитекторов ПО, экспертов по информационной безопасности и студентов программирования и кибербезопасности. Участвуй индивидуально или в команде до 5 человек.

Тебе предстоит разработать систему удалённого управления автомобилем для каршеринга, устойчивую к кибератакам. Специальных знаний в автомобильной отрасли не требуется — задача будет понятна всем, независимо от опыта.

Это твой шанс прокачать навыки в кибербезопасности и пообщаться с экспертами «Лаборатории Касперского».

Ключевые даты:

• 15 октября – 15 ноября – регистрация участников
• 8 ноября – митап с экспертами и игра «Огнеборец»
• 15 ноября – старт хакатона
• 17 ноября – дедлайн загрузки решений
• 22 ноября – подведение итогов и объявление победителей

Регистрируйся, прояви себя и внеси вклад в безопасность каршеринговых сервисов

C/C++ Ready | Программирование

05 Nov, 11:34


👩‍💻 Управление памятью

Работа с динамической памятью в C++ требует внимательности, особенно при разработке больших программ. Сегодня рассмотрим 3 варианта как не испортить свой скрипт :0

1 — Использование умных указателей:

Такие указатели, как std::unique_ptr и std::shared_ptr, помогают автоматизировать очистку памяти. При использовании std::unique_ptr, объект удаляется автоматически при выходе из области видимости, что предотвращает возможной утечки:
#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << *ptr; // вывод: 10

Этот подход подходит для простых случаев, когда объект имеет одного владельца

2 — Освобождение памяти:

При динамическом выделении важно вручную освобождать память с помощью delete и delete[] если вам не лень, конечно. А если серьезно, то delete освобождает память только из под указателя ;)
int* arr = new int[10];
delete[] arr; // правильное удаление массива


3 — Ну и если у вас есть висячие указатели:

В таком случае вам нужно будет обнулить указатель, дабы избежать случайного доступа к нему, на самом деле полезно:
int* ptr = new int(5);
delete ptr;
ptr = nullptr; // обнуление


С тебя 🔥 если зашел пост и делись мнением в комментах!


📣 C++ Ready | #практика

C/C++ Ready | Программирование

05 Nov, 09:12


Mr.Robot — закрытый канал про хакинг и информационною безопасность.

— Обход блокировок YouTube и Discord
— Получение доступа к любым аккаунтам ВК, Тикток, Инстаграм
— Деанонимизация по номеру телефона, почте или тг юзернейму
— Слив платных курсов

Будь на шаг впереди — https://t.me/+OYphDnLSkAA4MWMy

C/C++ Ready | Программирование

05 Nov, 06:34


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

📌 Ссылочка: https://dma-neves.github.io/dma/raptor.html

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

04 Nov, 14:06


😮 Добавлена новая база слитых курсов на 800ГБ:

Python:
https://t.me/+M41DT5NwaQswNzk6

Программирование:
https://t.me/+w-gECXRX02k0ZjFi

Frontend и Web:
https://t.me/+iAPi5Uqj5n04YjQy

Графика и дизайн:
https://t.me/+nZJOujtgfIwyMjIy

C/C++ Ready | Программирование

02 Nov, 16:12


🖥 Берегись неявного преобразования типов в C++

Неявное преобразование типов это автоматическое приведение одного типа к другому. Но эта "помощь" от компилятора может иногда подкинуть неприятных сюрпризов.

Рассмотрим пример:
void printStatus(bool status) {
if (status) {
std::cout << "Success\n";
} else {
std::cout << "Failure\n";
}
}
printStatus(5); // компилируется, но ожидаем ли мы это?


Код не вызовет ошибок компиляции, хотя функция ожидает тип bool, а передано целое число 5. Компилятор автоматически преобразует 5 в true. Таким образом у нас в коде может скрываться логическая ошибка, чего нужно избегать

Где можно потеряться?

1 — При перезагрузке функции преобразование типов может вызывать неоднозначности:
void func(int x);
void func(double x);
func(2.5f); // Какую функцию вызвать?


Компилятор может привести 2.5f к double или int. В зависимости от компилятора и флагов могут возникать неожиданные результаты.

2 — Конструкторы без explicit: Конструкторы, которые можно вызвать одним параметром, поддерживают неявное преобразование:
class Product {
public:
Product(int price) { }
};
void buy(const Product& p);
buy(99); // автоматически создается объект Product(99)


Такое поведение может привести к неожиданным последствиям. Чтобы избежать этого, стоит объявлять конструкторы с explicit:
explicit Product(int price) { }


Какой вывод? Неявное преобразование типов может сделать код менее предсказуемым, особенно при перегрузке функций и конструкторах. Всегда стоит использовать explicit для однопараметричных конструкторов и внимательно следить за перегрузками.

Жми 🔥 если понравился пост

📣 C++ Ready | #практика

C/C++ Ready | Программирование

01 Nov, 15:34


👩‍💻 Шпаргалка по методам работы с контейнерами STL в C++

Контейнеры STL в C++ — это структуры данных, такие как vector, list, map, и set, которые позволяют эффективно хранить и управлять коллекциями элементов, предоставляя удобные методы для работы с ними.

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

01 Nov, 12:12


Не хочешь оставаться нормисом?

За 2 года работы канала Больше 1000 подписчиков стали специалистами с доходом 200к+ рублей.

3500+ человек нашли работу благодаря нашим курсам. Если это слабый аргумент чтобы вступить в наш канал, тогда я уже не знаю что тебе предложить...

C/C++ Ready | Программирование

31 Oct, 16:12


👩‍💻 Шаблон проектирования Singleton в C++ — управление уникальными экземплярами

Шаблон Singleton позволяет создать единственный экземпляр класса и обеспечивает к нему глобальный доступ. Это полезно для управления ресурсами, такими как конфигурации или соединения с базами данных, избегая конфликтов при работе с несколькими экземплярами.

Используя простой код, можно реализовать этот шаблон, чтобы сделать свой код более организованным и эффективным!

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

📣 C++ Ready | #собес

C/C++ Ready | Программирование

31 Oct, 14:14


👩‍💻 Обучение программированию с нуля

Друзья, появился новый канал по обучению разных IT технологий.

Изучение Python
Изучение JavaScript
Изучение HTML/CSS
Изучение Java
Изучение C/С++
Изучение С#
Изучение SQL

👉 Подписывайся на TechVibe, если интересно.

C/C++ Ready | Программирование

31 Oct, 07:12


Poac — это менеджер пакетов и система сборки для пользователей C++, вдохновленная Cargo для Rust. Poac разработан как структурно-ориентированная система сборки, что означает, что, если вы следуете заданной структуре проекта Poac, вам почти не нужно конфигурировать проект, в отличие от CMake.

📌 Ссылочка: https://poac.dev/

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

30 Oct, 16:12


👩‍💻 Интерфейсы и абстрактные классы: проектирование гибкой архитектуры

Интерфейсы и абстрактные классы в C++ позволяют создавать гибкие и масштабируемые архитектуры, отделяя реализацию от интерфейса.

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

📣 C++ Ready | #гайд

C/C++ Ready | Программирование

30 Oct, 14:06


CodHub теперь в Telegram❗️

Устали от 100500 бесконечного множества каналов, в поисках полезного материала и новостей из мира 🤩 ? Добро пожаловать в наш проект CodHub l Программирование — Мы собираем для вас все лучшие материалы любых направлений в одном канале:

📱 — Frontend 👩‍💻 — C++
📱 — Python 🤔 — Hacking
📱 — Java 👩‍💻 — Golang
📱 — C# 👩‍💻 — Linux
👩‍💻 — Lua 👩‍💻 — php
👩‍💻 — Kotlin 👩‍💻 — Git
👩‍💻 — Assembler 👩‍💻 — Swift
🖥 — SQL 👩‍💻 — Mob. Develop
👣 — Backend 🐞— Qa Automation


Успей подписаться❗️ — @CodHub_tg

C/C++ Ready | Программирование

29 Oct, 17:43


👩‍💻 Магия ключевого слова constexpr

C++ 11 познакомил нас с constexpr, а с приходом C++ 14 и 17 это слово стало ещё более гибким и могущественным.

Но многие до сих пор недооценивают его силу, а зря! Попробуем разобраться, как constexpr может изменить твой код к лучшему.

Итак, представь себе простую задачу: тебе нужно вычислить факториал числа, и ты хочешь, чтобы компилятор это сделал на этапе компиляции (кто же хочет ждать вычислений в рантайме, если это можно избежать?). Вот решение без constexpr:
int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
int result = factorial(5); // вычисляется на этапе выполнения


Теперь с constexpr:
constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}
constexpr int result = factorial(5); // вычисляется на этапе компиляции


Компилятор вычисляет factorial(5) ещё до запуска программы, что ускоряет код и снижает нагрузку в рантайме, но есть пара нюансов:

• Чистота функций: constexpr функции должны быть "чистыми" — не менять глобальные данные и быть полностью детерминированными.

• Решение компилятора: компилятор может выполнить вычисление в constexpr, но не обязан. Если не удастся, он выполнит его в рантайме.

Так что в использовании constexpr есть свои тонкости, но при правильном подходе это просто находка для оптимизации. Делитесь своим мнением в комментариях и если было полезно, ставь реакцию под постом!

📣 C++ Ready | #техсобес

C/C++ Ready | Программирование

29 Oct, 14:26


⚡️ В сети начали находить курсы и книги известных онлайн школ в открытом доступе

Вот отсортированная база с тонной материала(постепенно пополняется):

🔗 БАЗА (3385 видео/книг):

(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL/БД
(163 видео, 29 книги) — Linux
(181 видео, 32 книги) — Go
(167 видео, 43 книги) — Kotlin/Swift
(137 видео, 93 книги) — Data Science
(113 видео, 82 книги) — GameDev
(129 видео, 73 книги) — QA

Скачивать ничего не нужно — все выложили в Telegram и на YouTube с доступом по ссылке

C/C++ Ready | Программирование

29 Oct, 06:12


📣 C++ Ready | #мем

C/C++ Ready | Программирование

28 Oct, 16:19


👩‍💻 RAII: Основа безопасного управления ресурсами

RAII — это идиома C++, которая связывает жизненный цикл ресурса с объектом, владеющим этим ресурсом.

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

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

📣 C++ Ready | #гайд

C/C++ Ready | Программирование

27 Oct, 10:21


👩‍💻 Шпаргалка по регулярным выражениям

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

⬇️ Скачать полную версию

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

26 Oct, 14:12


👩‍💻 Перегрузка операторов

Перегрузка операторов в C++ позволяет переопределить стандартные операторы для работы с пользовательскими типами данных.

Вся остальная информация и использование с кодом, есть в картинках выше!

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

📣 C++ Ready | #гайд

C/C++ Ready | Программирование

25 Oct, 16:34


👩‍💻 Рекурсия: Важные моменты и ошибки

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

1. Факториал: базовый пример.
Чтобы понять рекурсию, рассмотрим классический пример вычисления факториала числа:
int factorial(int n) {
return (n == 0) ? 1 : n * factorial(n - 1);
}

Функция вызывает саму себя, пока не достигнет базового случая — 0.

2. Бесконечная рекурсия: типичная ошибка
Если базовый случай отсутствует, программа может уйти в бесконечный цикл и вызвать переполнение стека:
void infiniteRecursion() {
infiniteRecursion(); // рекурсия без выхода
}

Это приведёт к падению программы из-за переполнения стека.

3. Оптимизация: хвостовая рекурсия

Иногда можно использовать хвостовую рекурсию, чтобы избежать дополнительных затрат на стек вызовов:
int tailFactorial(int n, int result = 1) {
return (n == 0) ? result : tailFactorial(n - 1, result * n);
}

Здесь результат передаётся как параметр, что снижает количество вызовов функции.

📣 C++ Ready | #техсобес

C/C++ Ready | Программирование

25 Oct, 14:13


👩‍💻 Программирование - ВСЁ

В 2024 году на кодинге уже не вывезешь, перспектива года - Информационная Безопасность.

Ловите полезные каналы, которые помогут ворваться в новое направление.

👍 ZeroDay - Уроки, эксплуатация уязвимостей с нуля
👍 Белый Хакер - Свежие новости из мира ИБ
😎 Арсенал Безопасника - Все необходимые инструменты
😎 Бункер Хакера - Статьи, книги, шпаргалки и хакинг
👨‍💻 Серверная Админа - Настройка и уроки по компьютерным сетям

📂Вступай и изучай новое направление!

C/C++ Ready | Программирование

24 Oct, 12:27


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

📌 Ссылочка: metanit.com

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

24 Oct, 09:41


👩‍💻 Move-семантика и rvalue ссылки в C++

Move-семантика — это механизм C++, который позволяет эффективно перемещать ресурсы, избегая затратных копирований объектов.

Использование rvalue ссылок и функции move() помогает оптимизировать работу с временными объектами.

Особенности и использование смотри в картинках выше!


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

📣 C++ Ready | #гайд

C/C++ Ready | Программирование

24 Oct, 07:34


Я айтишник и я устал!

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

Хватит грызть самого себя и заставлять через силу - сделаешь только хуже!

Лучше подпишись на того, кто уже не первый год работает с IT-специалистами и помогает им справиться с апатией и прокрастинацией - Психолог с научным подходом.

✔️ Как оторваться от ленты соцсетей и сесть за работу с удовольствием?
✔️ Как спокойно общаться с коллегами, если они бесят?
✔️ Как избавиться от постоянной тревожности?
✔️ Как успокоить конфликты в семье и перестать срываться на всех, а вместо этого получить поддержку и понимание со стороны близких?

Подписывайся на канал @remizov_changes - начни работать и жить в кайф, не скатываясь в кризисы и выгорание!

А в закрепе тебя уже ждут бонусы:
👨🏻‍💻 Видео, в котором ты найдёшь ответ на вопрос «Почему у тебя нет энергии и что с этим делать» + гайд как it-специалисту вернуть энергию, даже если не получается отдохнуть.

https://t.me/+ylN1V5L1BU1iNzRi

C/C++ Ready | Программирование

23 Oct, 14:30


👩‍💻 Методы для работы с массивами

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

📣 C++ Ready | #шпора

C/C++ Ready | Программирование

22 Oct, 14:12


⚡️ Вся база знаний по IT в одном месте!

🧑‍💻 IT База — краткие разборы самого важного из мира IT. Сотни мастхев-ресурсов, каждый день новые материалы по работе и подготовке к собеседованиям. Подойдёт как новичкам, так и состоявшимся айтишникам;

🖥 Frontend База — всё для фронтенд разработчиков. Готовые решения для проектов, полезные курсы по JS/HTML/CSS, готовые роадмапы для комфортного освоения в профессии и дальнейшего развития;

👣 Backend База — самое важное для бэкендеров. Всё о работе с PHP, MySQL, MongoDB, Golang и Rust в одном месте, плюс полные курсы и лайфхаки для работы на каждый день;

🖥 База Знаний — склад полезных курсов и материалов, где легко найти что-то нужное по хэштегам. Если вам что-то интересно про IT, то оно уже лежит на Базе, проверяйте.

Успей подписаться, чтобы не потерять!

C/C++ Ready | Программирование

22 Oct, 07:13


cppreference— обширная и подробная документация по стандартной библиотеке C++, включая примеры и пояснения.

📌 Ссылочка: cppreference.com

📣 C++ Ready | #ресурс

C/C++ Ready | Программирование

21 Oct, 12:45


👩‍💻 Ссылки и указатели: Что к чему?

1. Указатели: Где живут данные?

Это такие "хитрые" переменные, которые хранят не данные, а адреса других переменных. То есть, вы не просто работаете с переменной напрямую, а с её "местом жительства".
int x = 10;
int* ptr = &a; // ptr хранит адрес переменной a


2. Ссылки: Удобные "алиасы"
Это нечто вроде альтернативных имён для переменных. Они позволяют обращаться к одной и той же переменной под разными именами, но при этом не надо путаться с адресами.
int& ref = x; // ref — это просто другое имя для переменной x


3. Указатели против ссылок: В чём разница?
Вот в чём интересная штука: указатели могут быть неинициализированными или "нулевыми", что указывает на отсутствие адреса.

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

int* ptr2 = nullptr; // указатель может быть пустым
// int& ref2; // ошибка, ссылку нельзя оставить неинициализированной


4. Указатели и ссылки в функциях: Передача по адресу
Вот где начинается настоящая магия. Когда вы передаёте аргументы в функции, указатели и ссылки позволяют не копировать переменные, а передавать их адреса или алиасы.
void increment(int* ptr) {
(*ptr)++; // изменение значения по указателю
}
increment(&a); // передаём адрес переменной a


📣 C++ Ready | #техсобес

C/C++ Ready | Программирование

21 Oct, 10:11


Пс...
Тут два С++ сеньора создали канал, где простым языком поясняют за плюсы, метапрограммирование, фишки новых стандартов, алгоритмы, вопросы с собеседований и другие непонятные штуки из современного программирования на С++.

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

Подписывайтесь, чтобы пояснять друзьям за оптимизации компилятора, о которых вам никто не расскажет: Грокаем С++

C/C++ Ready | Программирование

20 Oct, 16:37


👩‍💻 Работа с контейнерами

empty() — проверяет, пуст ли контейнер, возвращая true, если он пуст, и false, если содержит элементы.

size() — возвращает количество элементов в контейнере, таком как вектор, и используется для определения его текущей длины.

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

📣 C++ Ready | #метод

C/C++ Ready | Программирование

18 Oct, 14:12


👩‍💻 Методы строк в C++

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

📣 C++ Ready | #шпора

7,256

subscribers

247

photos

16

videos