C++ geek
Kanalga Telegram’da o‘tish
3 504
Obunachilar
Ma'lumot yo'q24 soatlar
-27 kun
-2630 kun
Postlar arxiv
3 504
Откройте для себя мир кулинарии с РобоГурманом!
РобоГурман - это не просто канал, это ваш путеводитель в мире изысканных вкусов и ароматов, представленный неподражаемым Роботом ГаврИИлом. Стремитесь к новым гастрономическим высотам, вдохновляйтесь и творите!
- Изучите Кулинарный Код с ГаврИИлом и раскройте секреты шеф-поваров.
- Творите и экспериментируйте с уникальными и креативными рецептами.
- Подарите себе незабываемые вкусовые ощущения и вкусное приключение.
И для сладкого финала дня, рубрика Моя сладость! - погрузитесь в мир обворожительных и восхитительных десертов, которые сделают ваши сны ещё слаще!
Присоединяйтесь к РобоГурману и станьте частью нашего кулинарного сообщества, где каждый может стать шеф-поваром.
Вдохновляйтесь, создавайте и наслаждайтесь вкусными блюдами!
Подписаться
#реклама
О рекламодателе
3 504
Для чего нужен аллокатор и как создать свой собственный аллокатор?
Аллокатор это шаблонный класс, который отвечает за выделение памяти и создание объектов. По умолчанию все контейнера используют std::allocator<T>.
В языке c++ имеется так же возможность написать свой аллокатор. У своего алокатора должно быть такое объявление(см картинку).
👉 @cpp_geek
3 504
Ответ на вопрос и музыка ваша 90 дней бесплатно
Яндекс Музыка для вас и 3-х ваших близких 90 дней бесплатно. Попробуйте сейчас!
Попробовать
#реклама 16+
music.yandex.ru
О рекламодателе
3 504
Вывод параметра шаблона класса
Довольно странное название функции, да? Её суть в том, что с C++17 компилятор может сам определять типы аргументов конструкторов стандартных классов. Раньше же это работало лишь для функций.
Для того, чтобы осознать удобство этой функции, нужно быть знакомыми с конструкторами классов в C++.
👉 @cpp_geek
3 504
Сколько в памяти занимает произвольная структура?
Ответ: sizeof всех членов + остаток для выравнивания (по умолчанию выравнивание 4 байта) + sizeof указателя на vtable (если есть виртуальные функции) + указатели на классы предков, от которых было сделано виртуальное наследование (размер указателя * количество классов).
👉 @cpp_geek
3 504
Отличие перегрузки оператора от перегрузки функций?
Перегрузка функций даёт двум или более функциям с разными типами и количеством параметров иметь одно и то же имя. С другой стороны, перегрузка оператора позволяет переопределить способ работы оператора для пользовательских типов.
👉 @cpp_geek
3 504
Алгоритм rotate
Меняет местами элементы в диапазоне [first, last) таким образом, что элемент n_first становится первым в новом диапазоне, а n_first-1 — последним.
Параметры:
first, last - диапазон элементов для изменения их порядка.
n_first - элемент, который должен стать первым в новом диапазоне.
👉 @cpp_geek
3 504
Что не так в этом отрывке кода на С++?
operator int() const {
return *this;
}
Выше приведен полный код для проверки.
Ответ:
Он скомпилируется, хотя некоторые компиляторы могут кинуть warning, сразу же объясняющий в чём суть ошибки. Но вот при запуске вы словите stack overflow. Дело в том, что operator int будет пытаться привести возвращаемое значение к типу int, что вполне можно сделать, ведь для текущего объекта у нас есть замечательный operator int, который это и делает. Т.е. функцию вызовет сама себя и будет продолжать это делать рекурсивно, пока не переполнится стек.
➡️ @cpp_geek3 504
Range-based циклы
В С++11 была добавлена поддержка парадигмы
for each для итерации по набору. В новой форме возможно выполнять итерации в случае, если для объекта итерации перегружены методы begin() и end().
Это полезно, когда вы просто хотите получить элементы массива/контейнера или сделать с ними что-то, не заботясь об индексах, итераторах или кол-ве элементов.
➡️ @cpp_geek3 504
Как работает std::unique_ptr?
std::unique_ptr — это умный указатель (smart pointer), предназначенный для управления динамически выделенными объектами. Он обеспечивает автоматическое освобождение памяти при выходе объекта из области видимости или при необходимости.
Принцип работы std::unique_ptr заключается в том, что он владеет указателем на выделенную память и следит за временем жизни этой памяти.
Когда объект std::unique_ptr выходит из области видимости, он автоматически освобождает память, на которую он указывает, путем вызова оператора delete для хранящегося указателя.
➡️ @cpp_geek