• Optional — Позволяет безопасно обрабатывать возможные ошибки и неопределенные значения.
• Shared_ptr — Умный указатель, который автоматически управляет временем жизни объекта с использованием подсчета ссылок.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍9🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
AtCoder — Платформа, на которой вы можете следить за контестами по спортивному программированию, тренироваться к ним и участвовать в них
📌 Ссылочка: atcoder.jp
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎2🔥2
Указатели — одна из сложных, но мощных сторон C++. Разберем их использование и подводные камни:
1. Указатели и динамическая память Использование
new
и delete
для управления памятью:int* ptr = new int(42);
std::cout << *ptr << std::endl; // 42
delete ptr; // Освобождение памяти
2. Умные указатели unique_ptr
Автоматизируют управление памятью, предотвращая утечки:
#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(42);
std::cout << *ptr << std::endl; // 42
3. Передача указателя на функцию
Указатели позволяют передавать функции как параметры:
void apply(int (*func)(int), int x) {
std::cout << func(x) << std::endl;
}
int square(int x) { return x * x; }
apply(square, 5); // 25
Этот пример демонстрирует передачу функции для обработки данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍6🤝3
👍14🔥10🤝2
В этом посте мы создадим таймер на C++, который выполняет обратный отсчет времени и запускает функцию по завершению.
- Запрос времени и проверка ввода
- Функция обратного отсчета
- Вызов функции таймера
- Действие по завершении
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥60🤝10👍5👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Знали про интересный ресурс — Tutorials Point ?
Здесь собрано очень много полезной информации о C++, также к каждому туториалу прикреплен код
📌 Ссылочка: tutorialspoint.com
📣 C++ Ready | #ресурс
Здесь собрано очень много полезной информации о C++, также к каждому туториалу прикреплен код
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3🤝3
Сегодня рассмотрим, как неправильное использование std::move может привести к неожиданным багам. Хотя этот инструмент полезен для оптимизации, он требует точного понимания, чтобы избежать ловушек.
Повторное использование объекта после std::move
После применения
std::move
объект переходит в состояние "неопределенности". Попытка использовать такой объект может вызвать неожиданные проблемыstd::string str = "Hello";
std::string moved_str = std::move(str);
std::cout << "Moved string: " << moved_str << "\n";
std::cout << "Original string: " << str << "\n"; // Содержимое str не определено!
Результат:
moved_str
содержит "Hello", но str
становится пустым или неопределенным. Решение: Избегать доступа к перемещенному объекту
Если объект перемещен, не используйте его напрямую:
std::string moved_str = std::move(str);
if (str.empty()) {
std::cout << "Original string is now empty!\n";
}
Вектор и std::move
Использование
std::move
с контейнерами, такими как std::vector
, может привести к потере данных: std::vector<int> vec = {1, 2, 3};
std::vector<int> moved_vec = std::move(vec);
std::cout << "Original vector size: " << vec.size() << "\n";
std::cout << "Moved vector size: " << moved_vec.size() << "\n";
Результат:
vec
становится пустым, а данные передаются в moved_vec
. Однако повторное использование vec
вызовет проблемы. После перемещения не используйте исходный объект, а для контейнеров всегда проверяйте их состояние после
std::move
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍7🤝6
Переведённые на русский язык лекции топового Гарвардского курса CS50 по основам программирования. Курс охватывает ключевые концепции информатики, такие как алгоритмы, структуры данных, веб-разработка и многое другое.
Ссылка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍6🤝2👎1