➡️ Использование библиотеки cista для сериализации данных в C++
cista — это легковесная библиотека для эффективной бинарной и текстовой сериализации данных. Она обеспечивает высокую производительность и минимальные накладные расходы, делая её идеальной для сохранения состояния и передачи данных.
🔗 Ссылочка на доку
C++ Learning 👩💻
cista — это легковесная библиотека для эффективной бинарной и текстовой сериализации данных. Она обеспечивает высокую производительность и минимальные накладные расходы, делая её идеальной для сохранения состояния и передачи данных.
• cista — отличный выбор для разработчиков, которым нужна эффективная сериализация больших объемов данных без лишней сложности.🔗 Ссылочка на доку
C++ Learning 👩💻
❓ Вопрос на собеседовании
Что такое "SFINAE" (Substitution Failure Is Not An Error) в C++, и как он применяется в шаблонном программировании?
Ответ ⬇️
SFINAE — это принцип C++, при котором ошибка подстановки шаблонных параметров не приводит к ошибке компиляции, а просто игнорирует неудачные варианты. Это используется для создания разных реализаций шаблонных функций в зависимости от типов.
Пример использования ⚙️
C++ Learning 👩💻
Что такое "SFINAE" (Substitution Failure Is Not An Error) в C++, и как он применяется в шаблонном программировании?
Ответ ⬇️
Пример использования ⚙️
#include <iostream>
#include <type_traits>
// Шаблон для типов, поддерживающих операцию сложения
template <typename T>
typename std::enable_if<std::is_arithmetic<T>::value, T>::type
add(T a, T b) {
return a + b;
}
// Шаблон для других типов (например, строк)
template <typename T>
typename std::enable_if<!std::is_arithmetic<T>::value, void>::type
add(T a, T b) {
std::cout << "Сложение недоступно для этого типа.\n";
}
int main() {
std::cout << add(5, 3) << std::endl; // Сложение чисел
add(std::string("Hello"), std::string("World")); // Строки не поддерживают сложение
return 0;
}
SFINAE позволяет выбирать реализацию функции add() в зависимости от типа аргументов: для числовых типов выполняется сложение, а для других типов выводится сообщение.
C++ Learning 👩💻
➡️ Использование библиотеки di для создания зависимостей в C++
di — это легковесная библиотека для управления зависимостями в C++. Она предоставляет простой способ внедрения зависимостей, что делает код более модульным и тестируемым.
🔗 Ссылочка на доку
C++ Learning 👩💻
di — это легковесная библиотека для управления зависимостями в C++. Она предоставляет простой способ внедрения зависимостей, что делает код более модульным и тестируемым.
• di поддерживает автоматическое создание зависимостей и упрощает управление компонентами в сложных проектах.🔗 Ссылочка на доку
C++ Learning 👩💻
➡️ Использование библиотеки 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) Читайте канал преподавателя по высшей математике - он понятным языком объяснит все сложные вещи.
Вас ждут бесплатные практикумы на различные темы, готовые шпаргалки уроков и активное комьюнити 🔥
Приятный бонус - вы всегда можете обратиться за помощью с учёбой или решением задач.
Не теряйте 👉