Crow — это минималистичный фреймворк для разработки веб-серверов на C++. Поддерживает маршрутизацию, работу с JSON и асинхронный ввод-вывод, что делает его идеальным для создания быстрых и лёгких API.
• Простая маршрутизация для создания RESTful API.• Встроенная поддержка JSON через nlohmann/json.• Асинхронная обработка запросов для высокой производительности.Please open Telegram to view this post
VIEW IN TELEGRAM
Пояснение
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
std::tie из заголовка <tuple> используется для создания кортежа ссылок, что позволяет удобно распаковывать значения из функций или объектов. Это упрощает многозначные возвраты и код чтения данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает строку и проверяет, является ли она палиндромом. Функция должна игнорировать пробелы, знаки препинания и регистр.
Пример:
std::cout << isPalindrome("A man, a plan, a canal, Panama") << std::endl; // Ожидаемый результат: true
std::cout << isPalindrome("Hello, World!") << std::endl; // Ожидаемый результат: falseРешение задачи на картинке
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция
std::unique из заголовка <algorithm> удаляет последовательные дубликаты в отсортированном диапазоне, оставляя уникальные элементы. Это полезно для очистки списка от повторяющихся значений.Please open Telegram to view this post
VIEW IN TELEGRAM
Функции
std::lower_bound и std::upper_bound из заголовка <algorithm> используются для поиска границ диапазона элементов, равных заданному значению, в отсортированном контейнере. Это основа для эффективного бинарного поиска.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ класс
std::priority_queue из заголовка <queue> представляет собой контейнер с приоритетной очередью. Элементы извлекаются в порядке приоритета — по умолчанию, от большего к меньшему.Please open Telegram to view this post
VIEW IN TELEGRAM
Класс
std::set из заголовка <set> представляет собой контейнер, хранящий уникальные элементы в отсортированном порядке. Это удобно для работы с множествами или быстрого поиска.Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает массив целых чисел и удаляет из него все дубликаты. Возвращаемый массив должен содержать только уникальные значения, сохраняя исходный порядок их появления.
Пример:
std::vector<int> numbers = {1, 2, 2, 3, 4, 3, 5};
std::vector<int> result = removeDuplicates(numbers);
for (int num : result) {
std::cout << num << " ";
}
// Ожидаемый вывод: 1 2 3 4 5Решение задачи на картинке
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::reverse из заголовка <algorithm> позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ⬇️
Perfect forwarding — это техника передачи аргументов в функции или конструкторы так, чтобы сохранить их исходные квалификаторы (например, lvalue, rvalue). Она достигается с помощью универсальных ссылок (T&&) и функции std::forward. Perfect forwarding используется для передачи аргументов в шаблонных функциях без лишних копирований.
Пример использования⚙️
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ
Пример использования
#include <iostream>
#include <utility>
void process(int& x) {
std::cout << "Lvalue: " << x << "\n";
}
void process(int&& x) {
std::cout << "Rvalue: " << x << "\n";
}
template <typename T>
void forwarder(T&& arg) {
process(std::forward<T>(arg));
}
int main() {
int a = 42;
forwarder(a); // Передаем lvalue
forwarder(100); // Передаем rvalue
return 0;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::replace из заголовка <algorithm> заменяет все вхождения указанного значения на новое значение в заданном диапазоне. Это полезно для массовой замены элементов в контейнерах.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функции
std::ceil и std::floor из заголовка <cmath> используются для округления числа вверх или вниз до ближайшего целого. Это полезно для контроля направления округления.Please open Telegram to view this post
VIEW IN TELEGRAM
Не многие знаю что существует тип переменной byte. Число этого типа может быть в диапазоне от 0 до 255.
🗣️ А, и занимает это чудо в 2 раза меньше памяти. За такое вас по головке поглядят.
Please open Telegram to view this post
VIEW IN TELEGRAM
Это позволяет значительно упростить код, сделать его более читаемым и легким для поддержки.
• Например:typedef std::vector<std::string> StrVector;
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ метод
std::vector::resize изменяет размер вектора. Если новый размер больше текущего, добавляются элементы с дефолтным значением. Если меньше — лишние элементы удаляются.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::set_intersection из заголовка <algorithm> позволяет найти пересечение двух отсортированных контейнеров. Результат записывается в другой контейнер.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::adjacent_find из заголовка <algorithm> ищет первый элемент в контейнере, который имеет соседний элемент с таким же значением или удовлетворяет заданному условию. Это удобно для обнаружения повторений или паттернов.Please open Telegram to view this post
VIEW IN TELEGRAM