Библиотека задач по C++ | тесты, код, задания
الذهاب إلى القناة على Telegram
Задачи и тесты по C++ для тренировки и обучения. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Учиться у нас: https://proglib.io/w/7a480301 Для обратной связи: @proglibrary_feeedback_bot
إظهار المزيد5 422
المشتركون
-824 ساعات
-107 أيام
-2630 أيام
أرشيف المشاركات
Какой конструктор вызовет std::move для const-объекта?
C++20. Что выведет программа?
#include <iostream>
#include <utility>
struct Item {
Item() = default;
Item(const Item&) {
std::cout << "copy";
}
Item(Item&&) {
std::cout << "move";
}
};
int main() {
const Item source;
Item target = std::move(source);
}
👾 — move
👍 — Ошибка компиляции
🥰 — copy
⚡️ — Ничего: сработает устранение копирования
Ответ: 🥰 — copy.
std::move не снимает const: здесь результат имеет тип const Item&&. Его нельзя передать конструктору Item(Item&&), зато конструктор Item(const Item&) подходит. Поэтому создаётся копия. Сам std::move не выполняет перемещение.
Правило в проекте стандарта C++
Библиотека задач по C++📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
Изменится ли размер map после чтения отсутствующего ключа?
C++20. Что выведет программа?
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> counts;
int value = counts["go"];
std::cout << value << ' '
<< counts.size();
}
👾 — 0 0
👍 — 0 1
🥰 — std::out_of_range
⚡️ — Ошибка компиляции
Ответ: 👍 — 0 1.
Если ключ отсутствует, operator[] вставляет новый элемент. Для int со стандартным аллокатором значение инициализируется нулём. Поэтому value равен 0, а в map теперь один элемент. Для поиска без вставки можно использовать find; at для отсутствующего ключа выбросил бы исключение.
Правило в проекте стандарта C++
Библиотека задач по C++Разделяют ли копии mutable-лямбды один счётчик?
C++20. Что выведет программа?
#include <iostream>
int main() {
auto next = [n = 0]() mutable {
return ++n;
};
auto copy = next;
std::cout << next() << ' ';
std::cout << next() << ' ';
std::cout << copy();
}
👾 — 1 2 3
👍 — 1 1 1
🥰 — Ошибка компиляции
⚡️ — 1 2 1
Ответ: ⚡️ — 1 2 1.
Захваченный по значению n хранится внутри объекта лямбды. При копировании next создаётся другой объект со своим n, пока равным нулю. mutable разрешает менять этот внутренний счётчик, но не объединяет состояние копий.
Правило в проекте стандарта C++
Библиотека задач по C++Какое значение по умолчанию получит виртуальный метод?
C++20. Что выведет программа?
#include <iostream>
struct Base {
virtual void show(int n = 1) {
std::cout << "Base " << n;
}
};
struct Derived : Base {
void show(int n = 2) override {
std::cout << "Derived " << n;
}
};
int main() {
Derived object;
Base& ref = object;
ref.show();
}
👾 — Derived 1
👍 — Derived 2
🥰 — Base 1
⚡️ — Ошибка компиляции
Ответ: 👾 — Derived 1.
Виртуальный вызов выбирает реализацию Derived::show. Но аргумент по умолчанию берётся из объявления, доступного через статический тип ref — Base&. Поэтому вызывается Derived::show(1).
Правило в проекте стандарта C++
Библиотека задач по C++😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!
До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.
Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
Что сохраняет auto при чтении элемента vector<bool>?
C++20. Что выведет программа?
#include <iostream>
#include <vector>
int main() {
std::vector<bool> flags{false};
bool snapshot = flags[0];
auto proxy = flags[0];
flags[0] = true;
std::cout << snapshot << ' '
<< static_cast<bool>(proxy);
}
👾 — 0 0
👍 — 1 1
🥰 — 0 1
⚡️ — Ошибка компиляции
Ответ: 🥰 — 0 1.
snapshot — отдельное значение bool. А auto выводит для proxy тип std::vector<bool>::reference: это объект-посредник, связанный с битом вектора. После изменения flags[0] преобразование proxy в bool даёт true. Вектор не менял размер, поэтому proxy остаётся действительным.
Правило в проекте стандарта C++
Библиотека задач по C++Repost from Библиотека программиста
👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом
🐸 Библиотека программиста
🧨 Задача: битовое поле, которое лжёт
Сделали компактную структуру флагов. Записали 1, сравниваем с 1 — не сходится. Призраки?
struct Flags { int active : 1; };
int main() {
Flags f;
f.active = 1;
if (f.active == 1)
std::cout << "ok\n"; // не печатает!
}
Задача: объясни, почему однобитное знаковое поле хранит не то, что ждёшь, и какое значение реально читается. Как объявить поле правильно?😭 Как не потратить недельный лимит AI-кодинга за три дня?
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
🔘 Поговорим о том:
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.
⬇️ 18 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок
💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.
🔗 Зарегистрироваться на вебинар
Repost from Proglib.academy | IT-курсы
👅 Самое сложное — выбрать не курс, а направление
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎 🔗 Узнать подробнее 🏃♀️ Proglib Academy
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇
🍴 Исследовательская задача: что именно изменил C++23
В C++23 приняли P2718R0 — и старый баг range-for тихо исчез. Но не для всех временных объектов и не безусловно.
std::vector<int> getData() { return {1, 2, 3}; }
for (int x : getData() // временный 1
| filtered) // вью поверх него
std::cout << x;
✏️Задание (research): найди в документации/предложении ответы:
1️⃣ Жизнь каких именно временных объектов продлевает P2718R0?
2️⃣ Почему до C++23 пример выше был UB, а теперь — нет?
3️⃣ Остались ли случаи, где даже в C++23 ты получишь висячую ссылку?Repost from Proglib.academy | IT-курсы
🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
⚡️ Предзапись на осенний поток уже открыта
🏃♀️ Proglib Academy
Разработчик, DevOps-инженер или техлид — у каждого своя причина навести порядок в работе с AI-агентами.
Разбираем, чем отличаются их задачи 😊
