➡️ Использование библиотеки Glaze для сериализации данных в C++
Glaze — это мощная библиотека для сериализации объектов C++ в различные форматы, такие как JSON, с высокой производительностью. Она поддерживает статическую сериализацию, обеспечивая компактность и быстрое преобразование данных.
🔗 Ссылочка на доку
C++ Learning 👩💻
Glaze — это мощная библиотека для сериализации объектов C++ в различные форматы, такие как JSON, с высокой производительностью. Она поддерживает статическую сериализацию, обеспечивая компактность и быстрое преобразование данных.
• Glaze подходит для приложений, где важна производительность при работе с большими объемами данных и их передачей в различные форматы.🔗 Ссылочка на доку
C++ Learning 👩💻
👩💻 Задача по C++
Напишите функцию
Пример:
Решение задачи на картинке ☝
C++ Learning 👩💻
Напишите функцию
findMedian для нахождения медианы в отсортированном массиве целых чисел. Функция должна корректно работать как с массивами чётной длины, так и с нечётной, и возвращать медиану в виде числа с плавающей точкой.Пример:
std::vector<int> arr1 = {1, 3, 3, 6, 7, 8, 9};
std::vector<int> arr2 = {1, 2, 3, 4, 5, 6, 8, 9};
std::cout << findMedian(arr1) << std::endl; // Вернёт 6
std::cout << findMedian(arr2) << std::endl; // Вернёт 4.5Решение задачи на картинке ☝
C++ Learning 👩💻
❓ Вопрос на собеседовании
Что такое rvalue-ссылки в C++ и зачем они нужны?
Ответ ⬇️
Rvalue-ссылки (ссылки на временные объекты) позволяют захватывать и модифицировать временные объекты, избегая ненужного копирования данных. Они обозначаются как T&&. Основное применение rvalue-ссылок — это "перемещение" (move semantics), которое помогает оптимизировать работу с ресурсами. Вместо создания копии и переноса данных, можно использовать rvalue-ссылку и «переместить» содержимое, например, из одного контейнера в другой, обнулив исходный объект.
Пример использования ⚙️
C++ Learning 👩💻
Что такое rvalue-ссылки в C++ и зачем они нужны?
Ответ ⬇️
Пример использования ⚙️
#include <iostream>
#include <vector>
class MyClass {
public:
std::vector<int> data;
MyClass(std::vector<int> d) : data(std::move(d)) {} // перемещающий конструктор
MyClass(MyClass&& other) noexcept : data(std::move(other.data)) {
other.data.clear();
}
};
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
MyClass obj1(std::move(numbers)); // перемещение данных из numbers в obj1
MyClass obj2(std::move(obj1)); // перемещение из obj1 в obj2
std::cout << "Размер obj1 после перемещения: " << obj1.data.size() << std::endl; // Размер obj1 после перемещения: 0
}
C++ Learning 👩💻
➡️ GSL: Библиотека численных методов для C/C++ разработчиков
GSL – бесплатная библиотека для C и C++, включающая комплексные числа, матрицы, полиномы и анализ. Она проста в использовании, безопасна для многопоточности и не имеет зависимостей.
🔗 Ссылочка на доку
C++ Learning 👩💻
GSL – бесплатная библиотека для C и C++, включающая комплексные числа, матрицы, полиномы и анализ. Она проста в использовании, безопасна для многопоточности и не имеет зависимостей.
• Поддержка множества математических операций.• Потокобезопасность и отсутствие зависимостей для надёжной интеграции в проекты.🔗 Ссылочка на доку
C++ Learning 👩💻
👩💻 Задача по C++: Подсчёт гласных и согласных в строке
Напишите функцию на C++, которая принимает строку и подсчитывает количество гласных и согласных букв. Функция должна игнорировать пробелы, цифры и другие символы, не являющиеся буквами. В основной функции
Пример:
Решение задачи на картинке ☝
C++ Learning 👩💻
Напишите функцию на C++, которая принимает строку и подсчитывает количество гласных и согласных букв. Функция должна игнорировать пробелы, цифры и другие символы, не являющиеся буквами. В основной функции
main() вызовите эту функцию и выведите результат в консоль.Пример:
"Hello, World!"
Гласные: 3
Согласные: 7
Решение задачи на картинке ☝
C++ Learning 👩💻
⚙️ std::async
В C++ функция
C++ Learning 👩💻
В C++ функция
std::async из заголовка <future> позволяет запускать асинхронные задачи, возвращая объект std::future, который можно использовать для получения результата выполнения задачи. Это упрощает реализацию параллельных вычислений и улучшает производительность программ.C++ Learning 👩💻
⚙️ std::transform_reduce
Функция
C++ Learning 👩💻
Функция
std::transform_reduce из заголовка <numeric> объединяет возможности std::transform и std::accumulate, позволяя сначала применить операцию к каждому элементу, а затем свести их к одному значению. Это полезно для производительного параллельного вычисления сумм, произведений и других операций.C++ Learning 👩💻
✍️ Простые советы для тех, кто столкнулся с высшей математикой:
1) Помните, что математика — это не какой-то набор формул. Это язык, который описывает мир вокруг нас.
2) Используйте знания в повседневной жизни.
3) Читайте канал преподавателя по высшей математике - он понятным языком объяснит все сложные вещи.
Вас ждут бесплатные практикумы на различные темы, готовые шпаргалки уроков и активное комьюнити 🔥
Приятный бонус - вы всегда можете обратиться за помощью с учёбой или решением задач.
Не теряйте 👉
1) Помните, что математика — это не какой-то набор формул. Это язык, который описывает мир вокруг нас.
2) Используйте знания в повседневной жизни.
3) Читайте канал преподавателя по высшей математике - он понятным языком объяснит все сложные вещи.
Вас ждут бесплатные практикумы на различные темы, готовые шпаргалки уроков и активное комьюнити 🔥
Приятный бонус - вы всегда можете обратиться за помощью с учёбой или решением задач.
Не теряйте 👉
⚙️ std::visit
В C++17 введена функция
C++ Learning 👩💻
В C++17 введена функция
std::visit из заголовка <variant>, которая позволяет применять вызываемый объект (функтор, лямбда или функциональный объект) к текущему значению std::variant. Это обеспечивает безопасную и удобную работу с вариантами, заменяя необходимость в явных проверках типа и приведениях.C++ Learning 👩💻
➡️ Boost.JSON — библиотека для работы с JSON в C++
Boost.JSON, предназначена для эффективной работы с JSON-данными в C++. Она обеспечивает высокую производительность и простоту интеграции в существующие проекты.
🔗 Ссылочка на доку
C++ Learning 👩💻
Boost.JSON, предназначена для эффективной работы с JSON-данными в C++. Она обеспечивает высокую производительность и простоту интеграции в существующие проекты.
• Высокая производительность: Оптимизированный парсер и сериализатор для быстрого преобразования JSON-данных.• Совместимость: Поддержка стандартных контейнеров C++ и интеграция с другими библиотеками Boost.• Гибкость: Возможность работы с произвольными JSON-структурами и типами данных.• Безопасность: Обработка ошибок и защита от переполнения буфера при работе с недоверенными данными.🔗 Ссылочка на доку
C++ Learning 👩💻
➡️ RaftLib — современная библиотека для параллельной обработки данных в C++
RaftLib — это библиотека с открытым исходным кодом, упрощающая разработку высокопроизводительных параллельных приложений на C++. Она позволяет создавать масштабируемые системы обработки данных, используя концепцию потоков и конвейеров.
🔗 Ссылочка на доку
C++ Learning 👩💻
RaftLib — это библиотека с открытым исходным кодом, упрощающая разработку высокопроизводительных параллельных приложений на C++. Она позволяет создавать масштабируемые системы обработки данных, используя концепцию потоков и конвейеров.
• Интуитивный интерфейс: Напоминает стандартные потоки C++, облегчая освоение.• Автоматическая параллелизация: Управляет потоками и распределением задач для оптимальной производительности.• Гибкость и масштабируемость: Эффективна как на локальных системах, так и в распределённых средах.🔗 Ссылочка на доку
C++ Learning 👩💻
⚙️ std::forward
Функция
C++ Learning 👩💻
Функция
std::forward из заголовка <utility> используется для реализации идеальной передачи (perfect forwarding) аргументов в шаблонных функциях. Она позволяет сохранить категорию значения (lvalue или rvalue) передаваемого аргумента, что особенно полезно при написании обобщённого кода.C++ Learning 👩💻
➡️ Crow — легковесный фреймворк для веб-приложений на C++
Crow — это минималистичный фреймворк для разработки веб-серверов на C++. Поддерживает маршрутизацию, работу с JSON и асинхронный ввод-вывод, что делает его идеальным для создания быстрых и лёгких API.
🔗 Ссылочка на доку
C++ Learning 👩💻
Crow — это минималистичный фреймворк для разработки веб-серверов на C++. Поддерживает маршрутизацию, работу с JSON и асинхронный ввод-вывод, что делает его идеальным для создания быстрых и лёгких API.
• Простая маршрутизация для создания RESTful API.• Встроенная поддержка JSON через nlohmann/json.• Асинхронная обработка запросов для высокой производительности.🔗 Ссылочка на доку
C++ Learning 👩💻