TGViewer
Channel Public Channel
C++ geek

C++ geek

@cpp_geek

Учим C/C++ на примерах
Subscribers
3.53K
Photos
281
Videos
4
Links
53

Showing posts older than #219 · Back to latest

Older Posts 20 shown
Post #218 1.74K
Сколько в памяти занимает произвольная структура?

Ответ: sizeof всех членов + остаток для выравнивания (по умолчанию выравнивание 4 байта) + sizeof указателя на vtable (если есть виртуальные функции) + указатели на классы предков, от которых было сделано виртуальное наследование (размер указателя * количество классов).

👉 @cpp_geek
  • 🔥 8
  • ⚡ 1
Post #217 1.73K
Отличие перегрузки оператора от перегрузки функций?

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

👉 @cpp_geek
  • 👍 2
Post #216 2.05K
Алгоритм rotate

Меняет местами элементы в диапазоне [first, last) таким образом, что элемент n_first становится первым в новом диапазоне, а n_first-1 — последним.

Параметры:
first, last - диапазон элементов для изменения их порядка.
n_first - элемент, который должен стать первым в новом диапазоне.

👉 @cpp_geek
  • ❤ 5
  • 👍 3
Post #215 1.87K
В чем проблема со следующим кодом?
class A
{
public:
A() {}
~A(){}
};
class B: public A
{
public:
B():A(){}
~B(){}
};
int main(void)
{
A* a = new B();
delete a;
}

Поведение не определено, потому что деструктор A не является виртуальным.

👉 @cpp_geek
  • 👍 3
  • ⚡ 1
  • 👎 1
Post #214 1.99K
Преобразование вектора в массив

Для этого есть довольно простой трюк, поскольку спецификация теперь гарантирует, что векторы хранят свои элементы последовательно.

➡️ @cpp_geek
  • 👍 5
  • 🤮 4
  • 🤔 2
  • ⚡ 1
Post #213 2.42K
Функция isalpha()

Функция isalpha() в С++ проверяет, является ли данный символ буквой или нет.

Синтаксис:
isalpha(int ch).

Возвращаемое значение:
Функция возвращает ненулевое значение, если ch – буква и ноль, если ch не буква.

➡️ @cpp_geek
  • 👍 7
  • ⚡ 2
  • 🤮 1
  • 🤨 1
Post #212 2.24K
Алгоритм reverse_copy

Алгоритм копирует элементы из заданного диапазона, но в обратном порядке.

Принимает три параметра. Первые два параметра — это диапазон копируемых элементов, а третий параметр — начальная точка, из которой элементы копируются в обратном порядке.

➡️ @cpp_geek
  • 👍 5
  • 🥱 4
  • ⚡ 1
  • ❤ 1
Post #211 2.34K
Что не так в этом отрывке кода на С++?

operator int() const {
return *this;
}

Выше приведен полный код для проверки.

Ответ:
Он скомпилируется, хотя некоторые компиляторы могут кинуть warning, сразу же объясняющий в чём суть ошибки. Но вот при запуске вы словите stack overflow. Дело в том, что operator int будет пытаться привести возвращаемое значение к типу int, что вполне можно сделать, ведь для текущего объекта у нас есть замечательный operator int, который это и делает. Т.е. функцию вызовет сама себя и будет продолжать это делать рекурсивно, пока не переполнится стек.

➡️ @cpp_geek
  • 👍 12
  • ⚡ 2
Post #210 2.17K
Преобразование списка в массив в C++

Простое решение состоит в том, чтобы использовать цикл for на основе диапазона для обхода списка и, один за другим, добавлять каждый элемент в следующий доступный индекс в массиве.

➡️ @cpp_geek
  • 👍 5
  • 🥱 4
  • ⚡ 1
Post #209 2.3K
Примеры C++ кода до и после Ranges

Измените несортированный диапазон, чтобы он сохранял только уникальные значения, но в обратном порядке.

➡️ @cpp_geek
  • 👍 6
  • ⚡ 2
  • 🤡 2
Post #208 2.47K
Range-based циклы

В С++11 была добавлена поддержка парадигмы for each для итерации по набору. В новой форме возможно выполнять итерации в случае, если для объекта итерации перегружены методы begin() и end().

Это полезно, когда вы просто хотите получить элементы массива/контейнера или сделать с ними что-то, не заботясь об индексах, итераторах или кол-ве элементов.

➡️ @cpp_geek
  • 👍 5
  • ⚡ 2
  • 🤔 1
  • 🥱 1
Post #207 2.33K
Для чего используется вызов throw без аргументов?

Для повторного возбуждения предыдущего исключения и направления его следующему обработчику.

➡️ @cpp_geek
  • 👍 3
  • ⚡ 2
Post #206 2.43K
Как работает std::unique_ptr?

std::unique_ptr — это умный указатель (smart pointer), предназначенный для управления динамически выделенными объектами. Он обеспечивает автоматическое освобождение памяти при выходе объекта из области видимости или при необходимости.

Принцип работы std::unique_ptr заключается в том, что он владеет указателем на выделенную память и следит за временем жизни этой памяти.

Когда объект std::unique_ptr выходит из области видимости, он автоматически освобождает память, на которую он указывает, путем вызова оператора delete для хранящегося указателя.

➡️ @cpp_geek
  • 👍 8
Post #205 2.27K
Удаление всех вхождений элемента в массив

В этом методе сдвиньте нецелевой элемент в левую сторону.

• Проверьте, является ли текущий элемент целевым элементом или нет.
• Если это целевой элемент, увеличьте переменную cnt.
• После этого элемента все нецелевые элементы сдвинутся влево с промежутком (n-cnt).

Временная сложность: O(n)
Сложность пространства: O(1)

На картинке приведена программа на C ++ для удаления всех вхождений элемента из массива с использованием оптимизированного подхода.

➡️ @cpp_geek
  • 👍 4
  • ⚡ 1
Post #204 1.91K
Как проверить скорость выполнения кода на C++?

Ответ на картинке.

➡️ @cpp_geek
  • 👍 9
  • ⚡ 1
Post #203 2.1K
Чтение и отображение изображения в OpenCV с использованием C ++

Как мы видим нам потребовалось включить пространства имен cv, которое содержит все функции, классы и структуры данных OpenCV.

➡️ @cpp_geek
  • ⚡ 2
  • 👍 1
Post #202 1.8K
Обмен значений двух переменных с помощью XOR

Этот метод является быстрым и не требует использования 3-й переменной.

➡️ @cpp_geek
  • ❤ 4
  • ⚡ 2
  • 👍 2
Post #201 2.02K
Текущая дата и время

Предположим, вы хотите получить текущую системную дату и время, либо в качестве локального времени, либо в качестве скоординированного универсального времени (UTC).

Выше приведен пример для достижения обоих целей.

➡️ @cpp_geek
  • 👍 6
  • ❤ 1
  • ⚡ 1
Post #200 1.65K
Чем перегрузка функций отличается от перегрузки оператора?

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

➡️ @cpp_geek
  • 👎 1
  • 🤔 1
Post #199 2.02K
Алгоритм partial_sort

Используется для сортировки не всего диапазона, а только его части.

Он переставляет элементы в диапазоне [first, last) таким образом, что элементы до середины сортируются в порядке возрастания, тогда как элементы после середины остаются без какого-либо определенного порядка.

➡️ @cpp_geek
  • ⚡ 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →