
🌸 Майская распродажа
Скидки до 70% в каталоге + дополнительно 3,5% по промокоду HAPPYMAY
В каталог
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- Нативный
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
3 496.50₽3 496.50₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
imageИзображение не доступно для предпросмотра
Глубокое копирование
Термин глубокое копирование подразумевает создание нового объекта и копирование всех значений полей исходного объекта в новый объект. Если поле является указателем, то вместо копирования самого указателя создается новый объект, на который указывает исходный указатель, и новый указатель на этот новый объект сохраняется в новом объекте.
Это отличается от поверхностного копирования, при котором копируются только значения полей, включая указатели, но не объекты, на которые они указывают.
В этом примере у нас есть класс
В функции
Термин глубокое копирование подразумевает создание нового объекта и копирование всех значений полей исходного объекта в новый объект. Если поле является указателем, то вместо копирования самого указателя создается новый объект, на который указывает исходный указатель, и новый указатель на этот новый объект сохраняется в новом объекте.
Это отличается от поверхностного копирования, при котором копируются только значения полей, включая указатели, но не объекты, на которые они указывают.
В этом примере у нас есть класс
Deep
, который содержит указатель data
. В копирующем конструкторе мы создаем новый объект Deep
, копируя значение, на которое указывает data
в исходном объекте, а не сам указатель.В функции
main
мы создаем объект obj1
и затем создаем obj2
, используя копирующий конструктор. Затем мы меняем значение, на которое указывает data
в obj2
, и это не влияет на obj1
, что подтверждает, что было выполнено глубокое копирование.788
18:49
16.05.2025
imageИзображение не доступно для предпросмотра
Ценности и культура команды: почему они важны и как их приумножить
За любыми технологиями стоят команды, которые их создают. Команда Яндекс 360 удваивалась два года подряд. При таком быстром росте нам удалось сохранить атмосферу и культуру стартапа из нескольких десятков человек, который начинал всё это в 2020 году.
Роман Акинфеев, руководитель бэкенд-разработки в Яндекс 360, рассказал, как ценности и культура команды способствуют достижению бизнес-целей.
В докладе — про то, почему культура и ценности являются важнейшими активами команды, которые сложно создать и поддерживать, но легко потерять в период взрывного роста.
Больше материалов о технологиях в Яндекс 360
@yandex360team
За любыми технологиями стоят команды, которые их создают. Команда Яндекс 360 удваивалась два года подряд. При таком быстром росте нам удалось сохранить атмосферу и культуру стартапа из нескольких десятков человек, который начинал всё это в 2020 году.
Роман Акинфеев, руководитель бэкенд-разработки в Яндекс 360, рассказал, как ценности и культура команды способствуют достижению бизнес-целей.
В докладе — про то, почему культура и ценности являются важнейшими активами команды, которые сложно создать и поддерживать, но легко потерять в период взрывного роста.
Больше материалов о технологиях в Яндекс 360
@yandex360team
877
14:56
16.05.2025
#вопросы_с_собеседований
Можно ли выбрасывать exception из конструктора? Какие поля будут сконструированы, какие поля будут разрушены?
в C++ выбрасывать исключения из конструктора можно. Это обычно делается, когда в процессе инициализации объекта происходит ошибка, и объект не может быть корректно сконструирован.
Если исключение выбрасывается из конструктора, то все поля, которые были успешно сконструированы до момента выброса исключения, будут корректно разрушены. Это гарантируется механизмом исключений в C++.
Важно помнить, что только те поля, которые были успешно сконструированы, будут разрушены. Если исключение выбрасывается в процессе конструирования поля, то это поле не будет разрушено, так как его конструктор не был успешно завершен.
Можно ли выбрасывать exception из конструктора? Какие поля будут сконструированы, какие поля будут разрушены?
Если исключение выбрасывается из конструктора, то все поля, которые были успешно сконструированы до момента выброса исключения, будут корректно разрушены. Это гарантируется механизмом исключений в C++.
Важно помнить, что только те поля, которые были успешно сконструированы, будут разрушены. Если исключение выбрасывается в процессе конструирования поля, то это поле не будет разрушено, так как его конструктор не был успешно завершен.
929
14:26
16.05.2025
imageИзображение не доступно для предпросмотра
constinit
Если переменная, объявленная с
Переменная может быть одновременно
constinit
— это новый ключевое слово и спецификатор в C++20. Он используется для объявления переменных со статическим или потоковым временем хранения. Если переменная объявлена с constinit
, ее инициализирующее объявление должно быть выполнено с constinit
. Если переменная, объявленная с
constinit
, имеет динамическую инициализацию (даже если она выполняется как статическая инициализация), программа является некорректной.constinit
гарантирует, что переменная инициализируется на этапе компиляции, и что статическая инициализация не может привести к проблемам с порядком инициализации. Однако он не делает переменную неизменяемой и не подразумевает const
или constexpr
. Однако constexpr
подразумевает constinit
. Переменная может быть одновременно
const
и constinit
, но не может быть одновременно constexpr
и constinit
.1200
18:07
15.05.2025
imageИзображение не доступно для предпросмотра
std::tie
Она может использоваться для распаковки кортежей или пары значений в отдельные переменные. Например, если у вас есть функция, которая возвращает
В этом примере мы используем
Это позволяет нам проверить, было ли значение успешно вставлено в набор.
std::tie
— это функция, которая создает кортеж ссылок на lvalue
из своих аргументов или экземпляров std::ignore
. Она может использоваться для распаковки кортежей или пары значений в отдельные переменные. Например, если у вас есть функция, которая возвращает
std::pair
или std::tuple
, вы можете использовать std::tie
, чтобы присвоить значения этого кортежа отдельным переменным.В этом примере мы используем
std::tie
для распаковки результата вызова set_of_s.insert(value)
в две переменные: итератор iter
и логическую переменную inserted
. Это позволяет нам проверить, было ли значение успешно вставлено в набор.
1300
19:54
14.05.2025
imageИзображение не доступно для предпросмотра
📌 24 мая, System Level Meetup от YADRO, Санкт-Петербург и онлайн
Встретимся, чтобы поговорить об C++ в системной разработке: обсудим стандарты, подходы и реальные задачи, которые решаются на этом языке.
Участвовать можно офлайн или онлайн — регистрируйтесь, чтобы забронировать место или получить ссылку на стрим на одной из популярных платформ.
Классные бонусы для офлайн-участников: демозона с «железом» YADRO для ЦОД и телеком-операторов, технические интерактивы и подарки от компании.
В программе:
— Константин Владимиров и Илья Андреев расскажут о девиртуализации в C++, её основных проблемах и о том, как компиляторы эти проблемы решают.
— Леонид Меркин расскажет, как благодаря программированию на C++ в российской аэрокосмической индустрии растёт надёжность mission-critical-IT-решений.
— Илья Шишков прочитает доклад «C++ внутри PostgreSQL: удобство против традиций» и поделится тем, как смог вплести C++ в строго C-шную кодовую базу и каких результатов добился.
Вторая секция митапа — о Linux Kernel. Там обсудим эволюцию ядра Linux, использование Rust для написания драйверов устройств и другие темы. Можно выбрать одно направление или послушать доклады из разных секций.
📍Санкт-Петербург, Loft Hall, Арсенальная набережная, 1 или онлайн-трансляция.
Участие бесплатное, но нужна регистрация.
До встречи!
Встретимся, чтобы поговорить об C++ в системной разработке: обсудим стандарты, подходы и реальные задачи, которые решаются на этом языке.
Участвовать можно офлайн или онлайн — регистрируйтесь, чтобы забронировать место или получить ссылку на стрим на одной из популярных платформ.
Классные бонусы для офлайн-участников: демозона с «железом» YADRO для ЦОД и телеком-операторов, технические интерактивы и подарки от компании.
В программе:
— Константин Владимиров и Илья Андреев расскажут о девиртуализации в C++, её основных проблемах и о том, как компиляторы эти проблемы решают.
— Леонид Меркин расскажет, как благодаря программированию на C++ в российской аэрокосмической индустрии растёт надёжность mission-critical-IT-решений.
— Илья Шишков прочитает доклад «C++ внутри PostgreSQL: удобство против традиций» и поделится тем, как смог вплести C++ в строго C-шную кодовую базу и каких результатов добился.
Вторая секция митапа — о Linux Kernel. Там обсудим эволюцию ядра Linux, использование Rust для написания драйверов устройств и другие темы. Можно выбрать одно направление или послушать доклады из разных секций.
📍Санкт-Петербург, Loft Hall, Арсенальная набережная, 1 или онлайн-трансляция.
Участие бесплатное, но нужна регистрация.
До встречи!
1200
15:00
14.05.2025
1200
14:26
14.05.2025
imageИзображение не доступно для предпросмотра
Проверка специализации типа
Иногда встает задача проверить, является ли конкретный тип данных специализацией определенного шаблона. Для этого можно использовать синтаксис шаблонов
Иногда встает задача проверить, является ли конкретный тип данных специализацией определенного шаблона. Для этого можно использовать синтаксис шаблонов
template
.1400
20:39
13.05.2025
imageИзображение не доступно для предпросмотра
Проверка возможности конструирования элемента с набором конкретных параметров
Когда шаблонный класс задан в виде
Когда шаблонный класс задан в виде
template<class T, typename... Args>
, бывает трудно понять, какие аргументы можно использовать. Метод is_constructible
из библиотеки type_traits
даёт неполный ответ: он показывает, существует ли конструктор под конкретные аргументы. Для более полной картины можно использовать еще один шаблон.1600
19:56
12.05.2025
imageИзображение не доступно для предпросмотра
Встроенные алгоритмы
Удобно использовать встроенные функции
Удобно использовать встроенные функции
all_of, any_of
и none_of
для быстрой проверки элементов коллекции на соответствие условию.1800
19:40
11.05.2025
close
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
4.9
1 отзыва за 6 мес.
Превосходно (100%) За последние 6 мес
a
**exiospope@****.ru
на сервисе с сентября 2023
12.12.202415:45
5
Четкое соблюдение ТЗ
Показать еще
Новинки в тематике
Лучшие в тематике
Статистика канала
Рейтинг
20.5
Оценка отзывов
4.9
Выполнено заявок
130
Подписчики:
13.7K
Просмотры на пост:
lock_outline
ER:
7.2%
Публикаций в день:
1.0
CPV
lock_outlineВыбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий