⚙️ std::rotate
Функция std::rotate из заголовка циклически перемещает элементы в контейнере. Это удобно для сдвига массива или перестановки элементов.
👩💻
@quizcpp
Функция std::rotate из заголовка циклически перемещает элементы в контейнере. Это удобно для сдвига массива или перестановки элементов.
👩💻
@quizcpp
👩💻 Задача по C++: Удаление дубликатов из массива
Напишите функцию, которая принимает массив целых чисел и удаляет из него все дубликаты. Возвращаемый массив должен содержать только уникальные значения, сохраняя исходный порядок их появления.
Пример:
std::vector numbers = {1, 2, 2, 3, 4, 3, 5};
std::vector result = removeDuplicates(numbers);
for (int num : result) {
std::cout
@quizcpp
Напишите функцию, которая принимает массив целых чисел и удаляет из него все дубликаты. Возвращаемый массив должен содержать только уникальные значения, сохраняя исходный порядок их появления.
Пример:
std::vector numbers = {1, 2, 2, 3, 4, 3, 5};
std::vector result = removeDuplicates(numbers);
for (int num : result) {
std::cout
@quizcpp
⚙️ std::reverse
В C++ функция std::reverse из заголовка позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.
👩💻
@quizcpp
В C++ функция std::reverse из заголовка позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.
👩💻
@quizcpp
❓ Вопрос на собеседовании
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ ⬇️
Perfect forwarding — это техника передачи аргументов в функции или конструкторы так, чтобы сохранить их исходные квалификаторы (например, lvalue, rvalue). Она достигается с помощью универсальных ссылок (T&&) и функции std::forward. Perfect forwarding используется для передачи аргументов в шаблонных функциях без лишних копирований.
Пример использования ⚙️
#include
#include
void process(int& x) {
std::cout
@quizcpp
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ ⬇️
Perfect forwarding — это техника передачи аргументов в функции или конструкторы так, чтобы сохранить их исходные квалификаторы (например, lvalue, rvalue). Она достигается с помощью универсальных ссылок (T&&) и функции std::forward. Perfect forwarding используется для передачи аргументов в шаблонных функциях без лишних копирований.
Пример использования ⚙️
#include
#include
void process(int& x) {
std::cout
@quizcpp
❓ Вопрос на собеседовании
Что такое шаблонный метод std::enable_if в C++, как он работает, и в каких случаях его полезно использовать?
Ответ ⬇️
std::enable_if — это шаблонный механизм SFINAE (Substitution Failure Is Not An Error), позволяющий включать или отключать функции или классы на этапе компиляции в зависимости от выполнения условий. Это полезно для создания перегрузок шаблонов или ограничения их использования для определённых типов.
Пример использования ⚙️
#include
#include
// Шаблон для целых чисел
template
typename std::enable_if::type
printType(T value) {
std::cout
@quizcpp
Что такое шаблонный метод std::enable_if в C++, как он работает, и в каких случаях его полезно использовать?
Ответ ⬇️
std::enable_if — это шаблонный механизм SFINAE (Substitution Failure Is Not An Error), позволяющий включать или отключать функции или классы на этапе компиляции в зависимости от выполнения условий. Это полезно для создания перегрузок шаблонов или ограничения их использования для определённых типов.
Пример использования ⚙️
#include
#include
// Шаблон для целых чисел
template
typename std::enable_if::type
printType(T value) {
std::cout
@quizcpp
⚙️ std::bind
В C++ функция std::bind из заголовка позволяет создавать обёртки для функций, связывая определённые аргументы. Это удобно для частичного применения аргументов.
👩💻
@quizcpp
В C++ функция std::bind из заголовка позволяет создавать обёртки для функций, связывая определённые аргументы. Это удобно для частичного применения аргументов.
👩💻
@quizcpp
⚙️ std::accumulate
В C++ функция std::accumulate из заголовка выполняет свёртку элементов диапазона, используя заданную операцию. По умолчанию используется суммирование, но можно задать любую ассоциативную операцию.
👩💻
@quizcpp
В C++ функция std::accumulate из заголовка выполняет свёртку элементов диапазона, используя заданную операцию. По умолчанию используется суммирование, но можно задать любую ассоциативную операцию.
👩💻
@quizcpp
⚙️ std::partition
В C++ функция std::partition из заголовка разделяет элементы контейнера на две группы: те, которые удовлетворяют заданному условию, и те, которые не удовлетворяют. Это полезно для фильтрации данных.
👩💻
@quizcpp
В C++ функция std::partition из заголовка разделяет элементы контейнера на две группы: те, которые удовлетворяют заданному условию, и те, которые не удовлетворяют. Это полезно для фильтрации данных.
👩💻
@quizcpp
🔥1
⚙️ std::partial_sort
В C++ функция std::partial_sort из заголовка сортирует только часть контейнера, оставляя элементы до заданной позиции отсортированными, а остальные — в неопределённом порядке. Это эффективно, если нужно найти несколько наименьших или наибольших элементов.
👩💻
@quizcpp
В C++ функция std::partial_sort из заголовка сортирует только часть контейнера, оставляя элементы до заданной позиции отсортированными, а остальные — в неопределённом порядке. Это эффективно, если нужно найти несколько наименьших или наибольших элементов.
👩💻
@quizcpp
⚙️ std::merge
В C++ функция std::merge из заголовка объединяет два отсортированных диапазона в один отсортированный. Это полезно для слияния данных из двух контейнеров.
👩💻
@quizcpp
В C++ функция std::merge из заголовка объединяет два отсортированных диапазона в один отсортированный. Это полезно для слияния данных из двух контейнеров.
👩💻
@quizcpp
❓ Вопрос на собеседовании
Что такое emplace в C++ и чем оно отличается от push_back при работе с контейнерами STL?
Ответ ⬇️
Метод emplace добавляет новый элемент в контейнер, создавая его непосредственно на месте, вместо создания временного объекта и его копирования (как в случае с push_back). Это повышает производительность, особенно при добавлении сложных объектов. Метод emplace вызывает конструктор объекта с переданными аргументами прямо в памяти контейнера.
Пример использования ⚙️
#include
#include
#include
class MyClass {
public:
MyClass(const std::string& name, int value) : name(name), value(value) {
std::cout
@quizcpp
Что такое emplace в C++ и чем оно отличается от push_back при работе с контейнерами STL?
Ответ ⬇️
Метод emplace добавляет новый элемент в контейнер, создавая его непосредственно на месте, вместо создания временного объекта и его копирования (как в случае с push_back). Это повышает производительность, особенно при добавлении сложных объектов. Метод emplace вызывает конструктор объекта с переданными аргументами прямо в памяти контейнера.
Пример использования ⚙️
#include
#include
#include
class MyClass {
public:
MyClass(const std::string& name, int value) : name(name), value(value) {
std::cout
@quizcpp
⚙️ std::remove_if
В C++ функция std::remove_if из заголовка удаляет элементы из контейнера, удовлетворяющие заданному условию. Она не уменьшает размер контейнера, а перемещает удалённые элементы в конец.
👩💻
@quizcpp
В C++ функция std::remove_if из заголовка удаляет элементы из контейнера, удовлетворяющие заданному условию. Она не уменьшает размер контейнера, а перемещает удалённые элементы в конец.
👩💻
@quizcpp
👩💻 Задача по C++: Подсчёт слов в строке
Напишите функцию, которая принимает строку и возвращает количество слов в ней. Слова разделены пробелами, и строки могут содержать несколько подряд идущих пробелов.
Пример:
#include
#include
int main() {
std::string text1 = "Hello world!";
std::string text2 = " Multiple spaces between words ";
std::cout
@quizcpp
Напишите функцию, которая принимает строку и возвращает количество слов в ней. Слова разделены пробелами, и строки могут содержать несколько подряд идущих пробелов.
Пример:
#include
#include
int main() {
std::string text1 = "Hello world!";
std::string text2 = " Multiple spaces between words ";
std::cout
@quizcpp
⚙️ std::generate_n
В C++ функция std::generate_n из заголовка используется для заполнения заданного количества элементов последовательности, используя функцию-генератор. Это удобно для инициализации контейнеров или создания данных на лету.
👩💻
@quizcpp
В C++ функция std::generate_n из заголовка используется для заполнения заданного количества элементов последовательности, используя функцию-генератор. Это удобно для инициализации контейнеров или создания данных на лету.
👩💻
@quizcpp
В преддверии новой активности мы собрали в одну папку 30 Telegram-каналов известных профессионалов и попросили их авторов подготовить для вас документы, которые помогут:
Также они проводят розыгрыш с топовыми призами:
Как участвовать:
1. Подпишись на папку: https://t.iss.one/addlist/AYTpZaCWIxA5NWNi
2. Подтверди участие в боте
До встречи 25 сентября — дата объявления победителя!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
⚙️ std::find
В C++ функция std::find из заголовка используется для поиска первого вхождения заданного значения в диапазоне. Это полезно для работы с последовательными контейнерами, такими как массивы или векторы.
👩💻
@quizcpp
В C++ функция std::find из заголовка используется для поиска первого вхождения заданного значения в диапазоне. Это полезно для работы с последовательными контейнерами, такими как массивы или векторы.
👩💻
@quizcpp
⚙️ std::clamp
В C++17 и выше функция std::clamp из заголовка ограничивает значение заданным диапазоном. Это удобно для нормализации данных или защиты от выхода за пределы диапазона.
👩💻
@quizcpp
В C++17 и выше функция std::clamp из заголовка ограничивает значение заданным диапазоном. Это удобно для нормализации данных или защиты от выхода за пределы диапазона.
👩💻
@quizcpp
❓ Вопрос на собеседовании
Что такое умные указатели в C++ (std::unique_ptr, std::shared_ptr, std::weak_ptr), и чем они отличаются друг от друга?
Ответ ⬇️
Умные указатели в C++ автоматизируют управление памятью и помогают избежать утечек памяти. Они находятся в заголовке .
std::unique_ptr владеет ресурсом единолично. При уничтожении указателя ресурс освобождается.
std::shared_ptr позволяет нескольким указателям совместно владеть ресурсом. Ресурс освобождается, когда последний shared_ptr уничтожается.
std::weak_ptr предоставляет доступ к ресурсу, но не увеличивает счётчик ссылок. Используется для предотвращения циклических зависимостей.
Пример использования ⚙️
#include
#include
int main() {
// unique_ptr: единоличное владение
std::unique_ptr uptr = std::make_unique(10);
std::cout
@quizcpp
Что такое умные указатели в C++ (std::unique_ptr, std::shared_ptr, std::weak_ptr), и чем они отличаются друг от друга?
Ответ ⬇️
Умные указатели в C++ автоматизируют управление памятью и помогают избежать утечек памяти. Они находятся в заголовке .
std::unique_ptr владеет ресурсом единолично. При уничтожении указателя ресурс освобождается.
std::shared_ptr позволяет нескольким указателям совместно владеть ресурсом. Ресурс освобождается, когда последний shared_ptr уничтожается.
std::weak_ptr предоставляет доступ к ресурсу, но не увеличивает счётчик ссылок. Используется для предотвращения циклических зависимостей.
Пример использования ⚙️
#include
#include
int main() {
// unique_ptr: единоличное владение
std::unique_ptr uptr = std::make_unique(10);
std::cout
@quizcpp