👆Пояснение к предыдущему вопросу
👨🏻💻 В этом коде две проблемы -- первая, что в цикле
Во всём остальном оптимально. RVO (return value optimization) применяется во всех функциях, копирования при вызове Convert не происходит, а произойдёт просто навешивание ссылки.
👨🏻💻 В этом коде две проблемы -- первая, что в цикле
OtherData
будет копироваться, лучше сделать const OtherData& item
, вторая -- то, что вектор будет расти во время push_back
и стоит сделать reserve перед, чтобы не было слишком много аллокаций. Поэтому надо было выбрать второй вариант, так как первый отсутствовал.Во всём остальном оптимально. RVO (return value optimization) применяется во всех функциях, копирования при вызове Convert не происходит, а произойдёт просто навешивание ссылки.
push_back
создаст объект на месте, так как оно будет Rvalue.
Задачи и тесты по программированию | proghub👍1
👆Пояснение к предыдущему вопросу
👨🏻💻 Правильный ответ, что e будет являться временным объектом, так как итератор в std::map возвращает std::pair<const int, int>, поэтому произойдёт копирование пары, e будет временным объектом, который будет разрушаться и это является неопределённым поведением. См. value_type в https://en.cppreference.com/w/cpp/container/map
Все остальные ответы неправильные. const int* является константным по данным и присваивание корректно, если нет return statement из main, то оно по умолчанию ноль, а также main может быть без аргументов.
Задачи и тесты по программированию | proghub
👨🏻💻 Правильный ответ, что e будет являться временным объектом, так как итератор в std::map возвращает std::pair<const int, int>, поэтому произойдёт копирование пары, e будет временным объектом, который будет разрушаться и это является неопределённым поведением. См. value_type в https://en.cppreference.com/w/cpp/container/map
Все остальные ответы неправильные. const int* является константным по данным и присваивание корректно, если нет return statement из main, то оно по умолчанию ноль, а также main может быть без аргументов.
Задачи и тесты по программированию | proghub
👍1
Какой контейнер типа Container нельзя передавать в функцию EraseIf?
Anonymous Quiz
18%
std::unordered_set
11%
std::list
39%
все варианты верные
7%
std::map
14%
std::vector
11%
std::unordered_multimap
Что выведет программа?
Anonymous Quiz
35%
fg
6%
gf
12%
gg
8%
ff
27%
Неопределенное поведение
12%
Unspecified, то есть нельзя заключить из кода
Что выведет программа?
Anonymous Quiz
7%
неопределенное поведение
20%
d
18%
di
30%
i
11%
implementation defined
14%
не скомпилируется
Корректно ли функция посчитает и выведет что все элементы корректно обработаны?
Anonymous Quiz
33%
Нет, std::vector не гарантирует, что различные элементы не пересекаются по памяти
19%
Нет, successes каждый раз копируются в lambda, функция всегда вернёт false
22%
Нет, переменная i была захвачена по ссылке и будет изменяться, что приведет к UB
14%
Нет, функция имеет неопределенное поведение, так как std::all_of на пустом векторе не определена
11%
Да, всё корректно, различные элементы в векторе не пересекаются по памяти, data race не будет
Что выведет программа?
Anonymous Quiz
20%
Не скомпилируется
32%
0
26%
1
23%
Неопределенное поведение
This media is not supported in your browser
VIEW IN TELEGRAM
✅ IT work - актуальные вакансии и проекты для программистов всех уровней
🧠 Machine learning Jobs - вакансии Машинное обучение, работа с данными, аналитика.
🦫 Golang jobs - работа для Golang разрработчиков
🐍 Python Jobs - работа для Python программистов
☕️ Java Jobs - вакансии для java программистов
📱JS jobs - Javascrpt вакансии
🔥 English it - прокачай английский бесплатно для получения лучшего рабочего оффера.
🧠 Machine learning Jobs - вакансии Машинное обучение, работа с данными, аналитика.
🦫 Golang jobs - работа для Golang разрработчиков
🐍 Python Jobs - работа для Python программистов
☕️ Java Jobs - вакансии для java программистов
📱JS jobs - Javascrpt вакансии
🔥 English it - прокачай английский бесплатно для получения лучшего рабочего оффера.
Рассмотрим две реализации std::make_unique. В каких из трёх случаев контент сконструированных объектов a и b будет разный?
Anonymous Quiz
26%
1
29%
2
26%
3
18%
Ни в одном
👆Пояснение к предыдущему вопросу
👨🏻💻 Правильный ответ -- только в первом случае. a создаст объект из пяти шестёрок, а b будет равен
В третьем примере дефолтные конструкторы сделают одно и тоже.
Задачи и тесты по программированию | proghub
👨🏻💻 Правильный ответ -- только в первом случае. a создаст объект из пяти шестёрок, а b будет равен
{5, 6}.
Так происходит из-за list-init initialization.
Во втором случае объект b будет равен просто {"a", "b"}
. Объект a мог быть ошибкой, если бы типы Args&&... вывелись бы как указатели на char*, тогда мог бы сработать конструктор от двух указателей но шаблоны выводятся как const char(&)[2]
и поэтому этот конструктор не срабатывает. То есть этот пример не скомпилируется и не является правильным ответом.В третьем примере дефолтные конструкторы сделают одно и тоже.
Задачи и тесты по программированию | proghub