Сегодня мы детально рассмотрим, как асимптотическая оценка раскрывает секреты сложности алгоритмов и позволяет предсказать, каким образом изменится время выполнения вашего кода при росте входных данных. Знание этого открывает новую грань в понимании принципов разработки и оптимизации.
Эта рубрика — новинка на канале, и я буду рад, если вы поддержите её своими реакциями и комментариями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤝13👍5👎1
👍7🔥3
Media is too big
VIEW IN TELEGRAM
Нашел вам очередной бомбический репозиторий для тех, кому нужно много бесплатных API — Public APIs
Там собраны разные API с публичным доступом, которые распределены по категориям. Этот репозиторий точно поможет вам в создании собственного проекта.
Оставляю ссылочку: github.com/public-apis
📣 C++ Ready | #ресурс
Там собраны разные API с публичным доступом, которые распределены по категориям. Этот репозиторий точно поможет вам в создании собственного проекта.
Оставляю ссылочку: github.com/public-apis
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁5👎1
NULL или nullptr? Разбираемся в деталях и учимся писать безопасный код!
Если вы пишете на C++, то наверняка сталкивались с понятиями
В языке C++ макрос
Проблема в том, что
Таким образом,
🔥 Поэтому используйте
📣 C++ Ready | #практика
Если вы пишете на C++, то наверняка сталкивались с понятиями
NULL
и nullptr
. Но знаете ли вы, что это не одно и то же? На первый взгляд, они кажутся взаимозаменяемыми, но на самом деле между ними есть важные различия, которые могут повлиять на поведение вашего кода.В языке C++ макрос
NULL
традиционно определяется как 0
. Это может приводить к неожиданным ситуациям, особенно при перегрузке функций. Рассмотрим пример: void func(int) {}
void func(char*) {}
func(NULL); // Вызовет func(int), хотя вы, скорее всего, ожидали func(char*)!
Проблема в том, что
NULL
— это просто ноль, и компилятор не всегда понимает, что вы имели в виду указатель. В результате может быть вызвана не та функция, которую вы ожидали. Чтобы избежать таких сюрпризов, в C++11 появилось ключевое слово nullptr
. Оно однозначно трактуется как нулевой указатель: func(nullptr); // вызовется func(char*) — как и задумывалось!
Таким образом,
nullptr
решает проблему неоднозначности, которая возникает при использовании NULL
. Но на этом преимущества nullptr
не заканчиваются. Еще один важный плюс — безопасность типов. Сравните: auto x = NULL; // x будет int
auto y = nullptr; // y — строго std::nullptr_t
nullptr
имеет тип std::nullptr_t
, что делает его более безопасным и предсказуемым в использовании. Кроме того, использование nullptr
делает код более читаемым: когда вы его видите, сразу ясно, что речь идет о нулевом указателе, а не о числе. nullptr
в современном C++. Это не только устраняет неоднозначности, но и делает код более читаемым и безопасным. А NULL
оставьте для совместимости со старыми проектами или для ностальгических моментов. Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7
Media is too big
VIEW IN TELEGRAM
Платформа охватывает все ключевые аспекты языка, предлагая удобный подход как для новичков, так и для опытных программистов.
Она предлагает пошаговые учебники, практические примеры и онлайн-компилятор для изучения C++.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥4🤝3
Эти инструменты помогут вам эффективно организовать данные, упрощая дальнейшую обработку и поиск.
•
std::sort
— сортирует элементы контейнера по возрастанию или по заданному критерию.•
std::unique
— удаляет подряд идущие дубликаты в отсортированном контейнере, возвращая новый конец диапазона.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍9🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
BiRefNet — лучшая нейросеть для удаления заднего фона. Она отлично справляется с самыми сложными картинками.
⛓ Ссылочка: huggingface.co
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5
👍16🔥5
std::function
— это универсальный контейнер для вызываемых объектов: функций, лямбд и функторов. Он позволяет передавать поведение как параметр, создавая гибкие и абстрактные интерфейсы.Основные моменты:
• Хранит любую вызываемую сущность
• Упрощает работу с обратными вызовами
• Отличается от шаблонов: чуть медленнее, но зато гибче и универсальнее
🤝 — если уже пользовался
🔥 — если узнал новое
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝10👍6