C++_BE1
406 subscribers
278 photos
1 video
42 files
519 links
Канал по C/C++, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
➡️ Сжатие данных с использованием std::vector::shrink_to_fit

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

• Вектор заполняется 100 элементами, после чего большая часть элементов удаляется. Использование shrink_to_fit позволяет уменьшить емкость вектора до текущего количества элементов, что освобождает ненужную память.

• Используйте shrink_to_fit, когда нужно минимизировать использование памяти после удаления большого числа элементов из вектора. Это улучшает производительность и снижает потребление ресурсов, что особенно важно в средах с ограниченной памятью.

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Оптимизация доступа к элементам через std::deque с использованием индексации

std::deque — это контейнер, который позволяет эффективное добавление и удаление элементов как с начала, так и с конца. В отличие от std::vector, std::deque обеспечивает постоянное время доступа к элементам как в начале, так и в конце контейнера.

• Используйте std::deque в тех случаях, когда вам нужен быстрый доступ к элементам по индексу, но также важна возможность эффективного добавления и удаления элементов с обоих концов контейнера.

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Boost.MultiIndex — мощная библиотека для работы с контейнерами с множественной индексацией

Boost.MultiIndex — это часть популярной библиотеки Boost, которая предоставляет контейнеры с возможностью множественной индексации данных. Она позволяет хранить элементы в одном контейнере, но доступ к ним может осуществляться по разным критериям. Эта библиотека объединяет функциональность стандартных контейнеров, таких как std::set и std::map, в одном универсальном решении.

• Boost.MultiIndex — отличный выбор, если вам нужно эффективно управлять данными с различными критериями поиска и сортировки. Она упрощает создание сложных структур данных, поддерживающих несколько способов доступа к элементам.

🔗 Ссылочка на доку (https://www.boost.org/doc/libs/1_86_0/libs/multi_index/doc/index.html)

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Библиотека SOCI — удобная работа с базами данных в C++

SOCI (The C++ Database Access Library) — это библиотека, которая упрощает взаимодействие с различными базами данных, такими как PostgreSQL, MySQL, SQLite, и Oracle. Она предоставляет интерфейс, похожий на SQL, и позволяет работать с базами данных, используя простые и понятные C++-конструкции.

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

🔗 Ссылочка на доку (https://github.com/SOCI/soci)

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
Хочешь стать Linux-экспертом?

Linux++ (https://t.me/+xNHnlNHYWJcyM2Ey) - канал для тех, кто хочет профессионально освоить Linux и программирование!

- Уникальные гайды по администрированию Linux

- Продвинутые техники и рекомендации по разработке на языках C/C++

- Подробные статьи о внутреннем устройстве операционных систем

- Интересные факты и новости из мира технологий

🌐 Присоединяйся к нам и становись частью сообщества истинных гуру: Linux++ (https://t.me/+xNHnlNHYWJcyM2Ey)
➡️ Библиотека CppTaskflow — параллельные вычисления в C++ без лишней сложности

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

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

🔗 Ссылочка на доку (https://github.com/taskflow/taskflow)

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
🔥2
😒 На одном кодинге уже давно не вывезешь, перспектива 2024 года - Информационная Безопасность

Ловите два канала на тему ИБ и хакинга

(https://t.me/+5NrmraqqqORmMzky)ZeroDay - Уроки по кибербезопасности и хакингу с нуля. Вирусы, взломы, OSINT, криптография и свежие новости
<a href="https://t.me/+K8gCwVVrvFM0YWUy" target="_blank" rel="nofollow">
(https://t.me/+RAMAGRF5q9ZlZDg6)Белый Хакер (https://t.me/+ZhNqIKsXBAQyNGRi) - программное обеспечение, утилиты, OSINT, инструменты, полезная литература и много другое. Совершенно новый формат непохожий на другие каналы.
Поздравляю всех с днём программиста!!! 256 день года.
#Вопросы_с_собеседования
Как бы вы реализовали функцию, которая принимает вектор и возвращает новый вектор, содержащий только уникальные элементы исходного вектора, сохраняя их исходный порядок?

Функция использует unordered_set для отбора только уникальных элементы. Элемент добавляется в result только если его еще не было в наборе seen, что обеспечивает сохранение порядка элементов и их уникальность. Эффективность такого подхода — O(n), так как каждый элемент обрабатывается за амортизированное константное время.
➡️ Использование std::chrono::round для округления временных интервалов

Начиная с C++17, std::chrono::round позволяет округлять временные интервалы до ближайшего значения указанной единицы измерения. Это полезно для работы с точными временными данными, когда необходимо округлить значения до секунд, минут или других временных единиц.

• std::chrono::round — это удобный способ работы с временными интервалами, обеспечивающий точное округление до нужной временной единицы, что может быть полезно в системах с точной временной синхронизацией.

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Библиотека cpr — простой и удобный HTTP-клиент для C++

cpr — это легковесная библиотека для выполнения HTTP-запросов в C++. Она предоставляет интуитивно понятный API для отправки GET, POST и других запросов с поддержкой заголовков, параметров, аутентификации и даже SSL. Благодаря простоте использования и минимальным зависимостям, cpr становится отличным выбором для интеграции HTTP-функционала в C++ проекты.

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

🔗 Ссылочка на доку (https://github.com/libcpr/cpr)

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Использование std::jthread для упрощённого управления потоками

Начиная с C++20, std::jthread — это удобная обёртка для потоков, которая автоматически завершает поток при выходе из области видимости. Это упрощает работу с потоками, предотвращая забывание явного вызова join() или detach().

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

• Этот класс гарантирует безопасное завершение работы потока, устраняя риск "утечки" ресурсов.

C++ Learning (https://t.me/Learning_pluses) 👩‍💻
➡️ Использование std::bitset для работы с битовыми наборами

std::bitset — это мощный инструмент для работы с битовыми наборами в C++. Он предоставляет удобный интерфейс для хранения и манипулирования битами, что особенно полезно для низкоуровневых операций, требующих точного контроля за состоянием битов.

• std::bitset помогает упростить задачи, связанные с побитовой манипуляцией, делая код более читаемым и удобным.

• Библиотека поддерживает операции, такие как побитовые сдвиги, установка, очистка и проверка битов.

C++ Learning (https://t.me/Learning_pluses) 👩‍💻