Senior C++ Developer
12.9K subscribers
1.29K photos
3 videos
587 links
№ 4931128893
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr
Download Telegram
libxutils

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

#для_продвинутых
Loki

Loki — это библиотека для языка программирования C++, написанная Андреем Александреску, автором книги "Современное проектирование на C++: Обобщенное программирование и прикладные шаблоны проектирования". Библиотека основана на шаблонном метапрограммировании и активно использует возможности C++ для обобщенного программирования.

#для_продвинутых
STLport

STLport — это кроссплатформенная реализация Стандартной библиотеки шаблонов (STL) для языка C++. Она обеспечивает совместимость с широким спектром компиляторов и операционных систем, что делает ее популярным выбором для разработки на C++.

#для_продвинутых
BTSK

BTSK (Behavior Tree Starter Kit) — это бесплатная библиотека с открытым исходным кодом, написанная на C++, которая помогает разработчикам создавать системы искусственного интеллекта (ИИ) на основе поведенческих деревьев.

Поведенческие деревья — это иерархическая структура, которая представляет собой набор действий, которые может выполнять агент ИИ. BTSK упрощает создание и управление этими деревьями, предоставляя классы и функции для создания различных типов узлов деревьев.

#для_продвинутых
Evolving Objects

Evolving Objects (EO) — это библиотека эволюционных вычислений (ЭВ) с открытым исходным кодом, написанная на C++. Она предназначена для облегчения разработки эвристических алгоритмов для решения задач оптимизации и поиска.

EO предоставляет набор классов и компонентов, которые можно использовать для создания различных типов ЭВ-алгоритмов, таких как генетические алгоритмы, эволюционные стратегии и дифференциальная эволюция.

#для_продвинутых
Kaldi

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

#для_продвинутых
Frugally-deep

Frugally-deep — это библиотека с открытым исходным кодом, написанная на C++, которая позволяет использовать модели Keras (TensorFlow) в приложениях C++. Она предназначена для случаев, когда модель Keras обучена на Python, но необходимо выполнять предсказания (прямой проход) на C++ без необходимости связывать приложение с TensorFlow.

#для_продвинутых
Genann

Genann — это минималистичная, хорошо протестированная библиотека с открытым исходным кодом, реализующая многослойные персептроны (ANN) на C++. Она полностью содержится в одном C-файле и файле заголовка, что упрощает ее добавление в ваши проекты. Genann ориентирована на простоту использования, но при этом является очень расширяемой.

https://github.com/codeplea/genann

#для_продвинутых
oneDNN

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

https://github.com/oneapi-src/oneDNN

#для_продвинутых
CNTK

CNTK (Microsoft Cognitive Toolkit) - это набор инструментов с открытым исходным кодом для глубокого обучения, разработанный корпорацией Microsoft. Он позволяет создавать и обучать нейронные сети с помощью C++. CNTK обладает рядом преимуществ, делающих его привлекательным выбором для задач глубокого обучения.

#для_продвинутых
Tiny-dnn

Tiny-dnn — это легкая библиотека глубокого обучения, написанная на C++14. Она предназначена для работы на устройствах с ограниченными вычислительными ресурсами, таких как встраиваемые системы и устройства Интернета вещей (IoT).

#для_продвинутых
std::memory_order_release

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

Когда вы используете std::memory_order_release вместе с атомарными операциями записи, такими как std::atomic_store или std::atomic_exchange, это гарантирует, что все предшествующие операции записи, выполненные в этом потоке, завершатся до момента выполнения операции записи с порядком памяти std::memory_order_release. Это гарантирует, что изменения, сделанные в текущем потоке, видны другим потокам после операции записи с порядком памяти std::memory_order_release.

#для_продвинутых
Вглубь std::unordered_map: магические числа

Смотреть статью
Подводные камни С++. Решаем загадки неопределённого поведения

Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах.

Смотреть статью
Узнаем длину аудио файла

В этом примере мы открываем файл с помощью std::ifstream, находим его размер, а затем вычисляем длительность аудио файла, зная частоту дискретизации (в данном случае 44100 Гц). Выводим длительность в минутах и секундах.

Убедитесь, что заменили "your_audio_file.wav" на путь к вашему аудио файлу, а также, если частота дискретизации вашего аудио файла отличается от 44100 Гц, замените это значение на соответствующее значение вашего аудио файла.
Что такое пир-ревью и зачем оно нужно вашей команде

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

Смотреть статью