es
Feedback
C++ geek

C++ geek

Ir al canal en Telegram

Учим C/C++ на примерах

Mostrar más
3 540
Suscriptores
-224 horas
-177 días
-2930 días
Archivo de publicaciones
Примеры C++ кода до и после Ranges Измените несортированный диапазон, чтобы он сохранял только уникальные значения, но в обра
Примеры C++ кода до и после Ranges Измените несортированный диапазон, чтобы он сохранял только уникальные значения, но в обратном порядке. ➡️ @cpp_geek

Range-based циклы В С++11 была добавлена поддержка парадигмы for each для итерации по набору. В новой форме возможно выполнят
Range-based циклы В С++11 была добавлена поддержка парадигмы for each для итерации по набору. В новой форме возможно выполнять итерации в случае, если для объекта итерации перегружены методы begin() и end(). Это полезно, когда вы просто хотите получить элементы массива/контейнера или сделать с ними что-то, не заботясь об индексах, итераторах или кол-ве элементов. ➡️ @cpp_geek

Для чего используется вызов throw без аргументов? Для повторного возбуждения предыдущего исключения и направления его следующ
Для чего используется вызов throw без аргументов? Для повторного возбуждения предыдущего исключения и направления его следующему обработчику. ➡️ @cpp_geek

Как работает std::unique_ptr? std::unique_ptr — это умный указатель (smart pointer), предназначенный для управления динамичес
Как работает std::unique_ptr? std::unique_ptr — это умный указатель (smart pointer), предназначенный для управления динамически выделенными объектами. Он обеспечивает автоматическое освобождение памяти при выходе объекта из области видимости или при необходимости. Принцип работы std::unique_ptr заключается в том, что он владеет указателем на выделенную память и следит за временем жизни этой памяти. Когда объект std::unique_ptr выходит из области видимости, он автоматически освобождает память, на которую он указывает, путем вызова оператора delete для хранящегося указателя. ➡️ @cpp_geek

Удаление всех вхождений элемента в массив В этом методе сдвиньте нецелевой элемент в левую сторону. • Проверьте, является ли
Удаление всех вхождений элемента в массив В этом методе сдвиньте нецелевой элемент в левую сторону. • Проверьте, является ли текущий элемент целевым элементом или нет. • Если это целевой элемент, увеличьте переменную cnt. • После этого элемента все нецелевые элементы сдвинутся влево с промежутком (n-cnt). Временная сложность: O(n) Сложность пространства: O(1) На картинке приведена программа на C ++ для удаления всех вхождений элемента из массива с использованием оптимизированного подхода. ➡️ @cpp_geek

Как проверить скорость выполнения кода на C++? Ответ на картинке. ➡️ @cpp_geek
Как проверить скорость выполнения кода на C++? Ответ на картинке. ➡️ @cpp_geek

Чтение и отображение изображения в OpenCV с использованием C ++ Как мы видим нам потребовалось включить пространства имен cv,
Чтение и отображение изображения в OpenCV с использованием C ++ Как мы видим нам потребовалось включить пространства имен cv, которое содержит все функции, классы и структуры данных OpenCV. ➡️ @cpp_geek

Обмен значений двух переменных с помощью XOR Этот метод является быстрым и не требует использования 3-й переменной. ➡️ @cpp_g
Обмен значений двух переменных с помощью XOR Этот метод является быстрым и не требует использования 3-й переменной. ➡️ @cpp_geek

Текущая дата и время Предположим, вы хотите получить текущую системную дату и время, либо в качестве локального времени, либо
Текущая дата и время Предположим, вы хотите получить текущую системную дату и время, либо в качестве локального времени, либо в качестве скоординированного универсального времени (UTC). Выше приведен пример для достижения обоих целей. ➡️ @cpp_geek

Чем перегрузка функций отличается от перегрузки оператора? Перегрузка функций позволяет двум или более функциям с разными типами и количеством параметров иметь одно и то же имя. С другой стороны, перегрузка оператора позволяет переопределить способ работы оператора для пользовательских типов. ➡️ @cpp_geek

Алгоритм partial_sort Используется для сортировки не всего диапазона, а только его части. Он переставляет элементы в диапазон
Алгоритм partial_sort Используется для сортировки не всего диапазона, а только его части. Он переставляет элементы в диапазоне [first, last) таким образом, что элементы до середины сортируются в порядке возрастания, тогда как элементы после середины остаются без какого-либо определенного порядка. ➡️ @cpp_geek

Алгоритм move_backward Перемещает элементы одного итератора в другой. Перемещение начинается с последнего элементом в указанн
Алгоритм move_backward Перемещает элементы одного итератора в другой. Перемещение начинается с последнего элементом в указанном диапазоне и завершается первым элементом в этом диапазоне. ➡️ @cpp_geek

Что быстрее постфиксные инкрементные операторы или префиксные? Чем отличается их сигнатура? Префиксные операторы быстрее. В п
Что быстрее постфиксные инкрементные операторы или префиксные? Чем отличается их сигнатура? Префиксные операторы быстрее. В постфиксных операторах производится дополнительная операция сохранения предыдущего состояния объекта, а затем только увеличение на 1, а в префиксном операторе после инкрементирования объекта, сразу возвращается ссылка объект. Сигнатура их отличается фиктивным параметром int у постфиксного оператора. ➡️ @cpp_geek

Что такое ссылка? Как можно инициализировать ссылку одной или другой переменной в зависимости от условия? Ответ: Это другое и
Что такое ссылка? Как можно инициализировать ссылку одной или другой переменной в зависимости от условия? Ответ: Это другое имя для переменной. Ссылку необходимо инициализировать при объявлении и изменять уже нельзя. С помощью тернарного оператора или с помощью лямбда-функции. ➡️ @cpp_geek

Определение новых исключений Вы можете определить свои собственные исключения, наследуя и переопределяя функциональные возмож
Определение новых исключений Вы можете определить свои собственные исключения, наследуя и переопределяя функциональные возможности класса исключений . Ниже приведен пример, который показывает, как вы можете использовать класс std :: exception для реализации своего собственного исключения стандартным способом Это приведет к следующему результату - MyException caught C++ Exception Здесь what() - это открытый метод, предоставляемый классом исключений, и он был переопределен всеми дочерними классами исключений. Это возвращает причину исключения. ➡️ @cpp_geek

Что нужно дописать, чтобы при вызове конструктора перемещения член класса действительно "переместился"? Нужно дописать std::m
Что нужно дописать, чтобы при вызове конструктора перемещения член класса действительно "переместился"? Нужно дописать std::move в списке инициализации перемещающего конструктора: A(A&& oth) : str(std::move(oth.str)){ } Но это гарантирует "перемещение" только в том случае, если у этого объекта, в свою очередь, есть перемещающий конструктор (в данном случае, у std::string он есть). ➡️ @cpp_geek

Алгоритм prev_permutation Алгоритм переставляет элементы так, чтобы получилась предыдущая в лексикографическом порядке перест
Алгоритм prev_permutation Алгоритм переставляет элементы так, чтобы получилась предыдущая в лексикографическом порядке перестановка. Можно применять не только к векторам, но и к строкам (как и многие другие алгоритмы). Метод возвращает true, если удалось построить предыдущую в лексикографическом порядке перестановку. Если же первоначальная перестановка уже была минимальной в лексикографическом порядке, то метод генерирует максимальную в лексикографическом порядке перестановку и возвращает false. ➡️ @cpp_geek

Опишите выделение памяти и их отличия? • Статическое выделение памяти - выделяется редактором связей и существует, пока выполняется программа; • Память в стеке - автоматическая память. Выделяется при вызове функции для хранения локальных объектов и очищается автоматически после выхода этих объектов из зоны видимости, то есть после возвращения управления из функции; • Память в куче - динамическая память. Объекты создаются с помощью оператора new и должны быть уничтожены с помощью вызова оператора delete самим программистом. ➡️ @cpp_geek

Как сравнивают bool, int, float, указатели со значением и с нулем? Ответ на картинке. ➡️ @cpp_geek
Как сравнивают bool, int, float, указатели со значением и с нулем? Ответ на картинке. ➡️ @cpp_geek

Бывает такое, что оператор new не выделяет память? Ответ: Да, бывает, когда new передаётся указатель на уже выделенную память
Бывает такое, что оператор new не выделяет память? Ответ: Да, бывает, когда new передаётся указатель на уже выделенную память (например, с помощью malloc). Это называется placement new. И оператор new без изменения возвращает второй параметр - указатель (void* operator new(std::size_t, void*)). Это используется для создания объектов в выделенном "хранилище" или после malloc. Важно! В этом случае деструктор нужно вызывать самостоятельно! ➡️ @cpp_geek