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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/cpp_ready
加入频道
👩‍💻 Рассмотрим создание системы отслеживания задач

В этом посте мы создадим систему отслеживания задач с использованием очереди с приоритетами.

- Создание структуры задачи
- Добавление задачи в очередь
- Выполнение задачи
- Основная программа


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

📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26🤝7👍5
👩‍💻 Вспомним методы строк в плюсах

В этой шпаргалке мы рассмотрели методы работы со строками в C++, которые помогут вам при написании кода

📣 C++ Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный сайт с разборами задач — PVS-Studio

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

📌 Оставляю ссылочку: pvs-studio.com

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5🤝1
Что выведет консоль?
Anonymous Quiz
5%
A
37%
B
54%
C
4%
D
👍13🔥6
👩‍💻 Реализация копирования и перемещения

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

1. Конструктор копирования — создает новый объект, копируя данные из существующего:
MyClass(const MyClass& other) {
data = new int(*other.data);
// Копируем данные из другого объекта
}


2. Конструктор перемещения — передает владение ресурсом от одного объекта к другому, избегая копирования данных:
MyClass(MyClass&& other) noexcept : data(other.data) {
other.data = nullptr;
// После перемещения, объект other не имеет данных
}


3. Оператор присваивания (копирования) — переназначает ресурсы, освобождая старые данные и копируя новые:
MyClass& operator=(const MyClass& other) {
if (this != &other) {
// Проверка на самоприсваивание
delete data; // Освобождаем старые ресурсы
data = new int(*other.data); // Копируем данные
}
return *this;
}


📣 C++ Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8
👩‍💻 Делаю игру "Угадай число"

В этом посте я научу тебя создавать простую игру "Угадай число" на C++, полезно для новичков в программировании. В игре используется модуль рандом, скрипт разбит на несколько частей, что является хорошей практикой:

- Генерация случайного числа
- Ввод игрока
- Проверка ответа
- Завершение игры


📣 C++ Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7🤝4👎1
Знакомы с базовыми принципами работы с векторами?

Сегодня как раз поговорим про работу с векторами в 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 | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥8🤝5
This media is not supported in your browser
VIEW IN TELEGRAM
The Algorithms — сайт, который предоставляет обширную коллекцию алгоритмов и структур данных, реализованных на различных языках программирования.

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

📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1
👩‍💻 Случайные числа: Что и как?

В 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 | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍15🤝4