Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Битва Героев: RPG - увлекательная игра в жанре РПГ.

Битва Героев: RPG

Приключения, Фэнтези

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
t.evgenich
t.evgenich
7 месяцев назад

3 Бесплатные фишки для Telegram-канала⁠⁠

Привет народ, меня зовут Тарас, я владелец блога "Из технаря в предприниматели"

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

Эти функции идеально подходят для продюсеров, владельцев онлайн-школ и проджект-менеджеров, если вы хотите чтобы ваша аудитория действительно оставалась в вашем канале.


Чтож, начнём!

__________________

1) Кнопка в закреплённом сообщении

3 Бесплатные фишки для Telegram-канала Чат-бот, Telegram, Фишки, Лайфхак, Гайд, Инфобизнес, Технари, Длиннопост

Да, если больше 15 символов, кнопка в закрепе будет сжатая. Учитывайте это

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

Как настроить кнопку:

Есть 2 варианта:

Вариант 1 (сложный), через конструктор:
1. Создаете своего бота в @botfather
2. Подключаете его к конструктору чат-ботов (например SaleBot)
3. Ставите бота администратором канала
4. В разделе "Клиенты" смотрите появившийся канал
5. Выкладываете пост от лица бота (создаете блок с постом и "кнопкой В ТЕКСТЕ"), потом этот блок отправляете в канал, в разделе "Клиенты"

Вариант 2 (Полегче), через специального бота:
1. Создаете своего бота в @botfather
2. Подключаете его к боту https://t.me/ControllerBot и затем отправляете в бота ссылку на свой канал (не забудьте выдать права администратора в канале вашему боту)
3. Из данного бота ControllerBot переходите в своего, у вас высветится меню, выбираете "Создать пост"
4. Отправляете текст своего поста (редактируйте пост сразу, жирный шрифт и тп.). Бот отправит вам предпросмотр вашего сообщения и предложит выбрать следующие действия.
5. Нажимаете на кнопку "Добавить URL-кнопки". Отправляете нужную кнопку, как показано в примере.
6. Выбираете дату и время когда нужно выложить пост.

Готово, вы выложили пост с кнопкой в своем канале.

Примеры из личной практики для онлайн-школ:

  • Запись на курс: Кнопка ведёт на страницу регистрации.

  • Контакты поддержки: Перенаправление в чат с отделом заботы.

  • Программа обучения: Открывает PDF-файл или ссылку на страницу с вашим курсом.

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

__________________

2) Меню для Telegram-канала

3 Бесплатные фишки для Telegram-канала Чат-бот, Telegram, Фишки, Лайфхак, Гайд, Инфобизнес, Технари, Длиннопост

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

Ставьте в кнопки ссылки на посты, которые нужно закрепить для пользователей и не мучайте их десятком синих предложений)

Варианты реализации по сути у нас такие же, как в прошлом примере просто добавляйте больше кнопок либо в конструкторе, внутри блока, либо в боте

P.S. Я бы совместил оба варианта выше, так будет и удобнее и красивее, но ты смотри сам, поступай как считаешь нужным)

P.S.S. Прежде чем мы перейдем к 3-у шагу, подписывайся на мой телеграмм-канал, я периодически выкладываю подобные полезные материалы, а также рассказываю о различных фишка при работе с топами рынка инфобиза Вот ссылочка, не теряй — ССЫЛОЧКА

__________________

3) Автоматизация публикаций

Я думаю, что не открою для тебя америку, что есть такая возможность, но не подсветить ее, я не могу, это же капец как удобно! Да и тем более все это делают через какие-либо сервисы, когда можно в 100 раз проще.

Как настроить автопостинг:

  1. Пишешь пост и ставишь текст в диалоговое окно канала (НЕ ВЫКЛАДЫВАЙ ЕГО)

3 Бесплатные фишки для Telegram-канала Чат-бот, Telegram, Фишки, Лайфхак, Гайд, Инфобизнес, Технари, Длиннопост

2. Нажимаешь на синюю стрелочку правой кнопкой мыши (если с компьютера сидишь) или зажимаешь эту стрелочку на планшете/телефоне) и выбираешь "Отправить позже"

3 Бесплатные фишки для Telegram-канала Чат-бот, Telegram, Фишки, Лайфхак, Гайд, Инфобизнес, Технари, Длиннопост

3. Выбираешь дату отправки и готово, пост выйдет ровно в это время

3 Бесплатные фишки для Telegram-канала Чат-бот, Telegram, Фишки, Лайфхак, Гайд, Инфобизнес, Технари, Длиннопост

Важно: Часовой пояс и время публикации поста будут такие же, как у вас

P.S. Если нужно выложить отложенный пост с кнопкой, возвращаемся к первой фишке из этой статьи, а затем в том же боте (или конструкторе, планируем время "Рассылки") выбираем автопостинг и время, когда нужно

Не забывайте проверять часовой пояс и время, это важно

__________________

Думаю, что статья была достаточно информативной, и надеюсь не сильно душной, буду рад подписке на канал, уверяю тебя, не пожалеешь😉

Подписаться на канал Подписаться на канал Подписаться на канал

Показать полностью 4
[моё] Чат-бот Telegram Фишки Лайфхак Гайд Инфобизнес Технари Длиннопост
5
Блог компании
ggsel.net
ggsel.net
7 месяцев назад

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS⁠⁠

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Проект дебютировал на ПК и консоли текущего поколения 10 февраля 2023 года, после чего, 5 мая 2023 года, стал доступен на PS4 и Xbox One. Выпуск для Nintendo Switch состоялся 14 ноября 2024 года. К сожалению, издатель Hogwarts Legacy ввел ограничения на продажи в России, что осложняет покупку игры для местных геймеров. В данной статье мы в редакции GGSel.net поделимся способами, которые помогут обойти эти ограничения, а также обсудим системные требования для ПК и доступные издания игры.


Об игре

События Hogwarts Legacy происходят в конце XIX века и раскрывают приключения студентов Хогвартской школы. Игрокам предоставляется возможность выбрать свой факультет и посещать занятия в знаменитой школе чародейства и волшебства. Кроме того, они могут исследовать обширный открытый мир, включая такие легендарные места, как Запретный лес и деревню Хогсмид, знакомые по книгам и фильмам о Гарри Поттере.

Недавно студия Avalanche Software порадовала игроков, выпустив обновление для версии Hogwarts Legacy на ПК, которое добавило долгожданную поддержку модификаций. Вместе с этим обновлением, поклонники получили возможность воспользоваться Creator Kit и насладиться первыми официальными модами, доступными для загрузки как в Steam, так и в Epic Games. Однако стоит отметить, что сам Creator Kit можно найти исключительно в Epic Games Store.

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Системные требования Hogwarts Legacy для ПК

Минимальные:

  • Процессор: Intel Core i5-6600.

  • Видеокарта: GeForce GTX 960.

  • Оперативная память: 16 Гб.

  • Место на диске: 85 Гб.

Рекомендуемые:

  • Процессор: Intel Core i7-8700.

  • Видеокарта: GeForce GTX 1080 Ti.

  • Оперативная память: 16 Гб.

  • Место на диске: 85 Гб.


Издания

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Стандартное издание: только копия игры.

Делюкс-издание: помимо самой игры пользователи получают набор Темных искусств (летающий фестрал, костюм темных искусств и эксклюзивная боевая арена).


1. Как купить Hogwarts Legacy на ПК

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Самостоятельная покупка в Steam

Ее можно осуществить через смену региона или создание нового аккаунта с зарубежным регионом, в котором игра доступна. Если имеется иностранная банковская карта, то с покупкой игры самому — проблем не возникнет. Подробнее о способах мы писали в другой статье. Для пополнения зарубежного аккаунта можно воспользоваться маркетплейсом GGSel.

Покупка подарком или ключом для Steam на GGSel

Это более легкий и выгодный способ. На GGSel можно приобрести игру гифтом или ключом для Steam.

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний
  1. На сайте GGSel нажимаем на поисковую строку и ищем «Hogwarts Legacy». Находим нужный нам товар. Помимо цены рекомендуем обращать внимание на продажи, отзывы и рейтинг продавца.

  2. Внимательно читаем описание и оплачиваем товар.

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

  4. Остается только принять гифт или активировать ключ, после чего Hogwarts Legacy появится в нашей библиотеке игр.


2. Как купить Hogwarts Legacy на Xbox

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Покупка ключа активации

  1. Переходим в категорию «Hogwarts Legacy» и выбираем подходящий товар. Также, как и в предыдущем способе, смотрим на его критерии, внимательно читаем описание и оплачиваем.

  2. После этого нужно удостовериться, что наш IP-адрес соответствует тому региону, в котором покупали ключ игры, обычно об этом пишется в описании товара. Далее нужно открыть страницу активации кодов и вписать полученный ключ.

  3. После того как игра появится в нашей библиотеке Xbox скачиваем ее.

На GGSel есть продавцы, которые предлагают активацию игры на наш аккаунт, но им понадобится логин и пароль для входа на нашу учетную запись.

Также, если имеется зарубежная банковская карта, купить игру не составит проблем.

Покупка диска с игрой

В известных локальных магазинах можно приобрести диски с самой игрой, но цена на них явно завышена. Чтобы сберечь свои средства, можно постараться найти диск с игрой на б/у рынках или онлайн маркетплейсах. Однако не стоит забывать о том, что Xbox Series S не имеет дисковода.

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

3. Как купить Hogwarts Legacy на PlayStation

Покупка через зарубежный аккаунт

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

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Покупка с помощью карт оплаты

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

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний
  1. Находим раздел PlayStation, карты пополнения нужного региона на маркетплейсе. Вновь смотрим отзывы, рейтинг и количество продаж у продавца.

  2. Совершаем оплату, после чего получим код пополнения кошелька. Вводим его на сайте PlayStation или на самой консоли в PlayStation Store в разделе Redeem Codes and Gift Cards.

  3. После зачисления средств покупаем игру в PS Store.

Покупка физического издания

Аналогично Xbox, можно приобрести диск для PlayStation. Но способ подойдет только в том случае, если у нашей версии консоли есть дисковод.

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

4. Как купить Hogwarts Legacy на Nintendo Switch

Цифровая версия

Чтобы приобрести игру для Nintendo, необходимо сменить регион на самой портативке и купить Hogwarts Legacy через иностранный Nintendo eShop.

На картридже

Картриджи с Hogwarts Legacy продаются в локальных магазинах, а также их можно заказать на онлайн маркетплейсах.

Как купить Hogwarts Legacy в России на ПК, Xbox, PS и NS Геймеры, Видеоигра, Компьютерные игры, Игры, Гайд, Покупка, Инструкция, Скидки, Акции, Hogwarts Legacy, Steam, Xbox, Playstation, Длиннопост, Блоги компаний

Переходите на GGSel.net — торговую площадку, где вы найдете игры для ПК и консолей, DLC, сможете пополнить баланс популярных игровых и неигровых сервисов, купить и продать игровой аккаунт. И все это — по выгодным ценам!

Реклама ИП «Суханов Д.Ф.», ИНН: 290132412356

Показать полностью 10
Геймеры Видеоигра Компьютерные игры Игры Гайд Покупка Инструкция Скидки Акции Hogwarts Legacy Steam Xbox Playstation Длиннопост Блоги компаний
34
2
mcnikirikitiki
7 месяцев назад
Лига программистов

Основы программирования на C++: Жизненный цикл объекта⁠⁠

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

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

Здравствуйте, мои маленькие любители программирования!

Жизненный цикл объекта в C++ управляется конструкторами, деструкторами и операторами присваивания. Рассмотрим ключевые аспекты на примере класса Logger, который логирует вызовы своих специальных функций.

Основные этапы жизненного цикла

  1. Создание объекта:

    • Конструкторы: Вызываются при создании объекта. Могут быть параметризованными, копирующими или перемещающими.

    • Автоматические объекты (на стеке): Уничтожаются автоматически при выходе из области видимости.

    • Динамические объекты (в куче): Создаются через new, уничтожаются вручную через delete.

    Пример:

    Logger x1; // Вызов конструктора без аргументов

    Logger* x2 = new Logger(1); // Динамический объект

    delete x2; // Вызов деструктора

  2. Копирование и присваивание:

    • Конструктор копирования: Создает новый объект как копию существующего.

    • Оператор присваивания: Модифицирует существующий объект.

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

    Пример:

    Logger x3 = x1; // Конструктор копирования

    x3 = x1; // Оператор присваивания

  3. Перемещение:

    • Конструктор перемещения и оператор присваивания перемещением позволяют эффективно передавать ресурсы временных объектов.

    • Используются с std::move для явного указания перемещения.

    Пример:

    Logger x4 = std::move(x1); // Конструктор перемещения

    x4 = Logger(); // Оператор присваивания перемещением

  4. Деструктор: Вызывается при уничтожении объекта. Для автоматических объектов — при выходе из области видимости, для динамических — при вызове delete.

Особенности работы с классами

  • Статические поля: Общие для всех объектов класса. Используются для подсчета созданных экземпляров или хранения общих данных.

    class Logger {

    inline static int counter = 0; // Статическое поле

    const int id;

    public:

    Logger() : id(++counter) {} // Инициализация id };

  • Композиция классов: При создании объекта сначала инициализируются его поля, затем тело конструктора. Деструкторы вызываются в обратном порядке.

    class OuterLogger {

    Logger inner1, inner2; // Поля инициализируются до тела конструктора

    public: OuterLogger() { /* ... */ }

    ~OuterLogger() { /* ... */ } // Деструкторы inner2, inner1 вызываются после };

Временные объекты и контейнеры

  • Временные объекты существуют до конца выражения. Могут быть переданы в функции через rvalue-ссылки (&&), что позволяет избежать копирования.

    void f(Logger&& x); // Перегрузка для временных объектов

    f(Logger()); // Вызов версии с перемещением

  • Контейнеры (например, std::vector, std::list) управляют памятью автоматически. При реаллокации элементы могут копироваться или перемещаться.

    std::vector<Logger> vec;

    vec.emplace_back(); // Создание объекта напрямую в контейнере

    vec.push_back(Logger()); // Создание временного объекта и его перемещение

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

1. Реализация класса Logger

Создайте класс Logger со следующими требованиями:

  • Имеет static int counter для подсчета созданных объектов.

  • Содержит const int id, инициализируемую в конструкторе через ++counter.

  • Реализуйте:

    • Конструктор по умолчанию (логирует "Constructor called, id=X").

    • Конструктор копирования (логирует "Copy constructor, id=X → Y").

    • Конструктор перемещения (логирует "Move constructor, id=X → Y").

    • Деструктор (логирует "Destructor, id=X").

    • Операторы присваивания (копирования и перемещения) с аналогичным логированием.

Цель: Научиться реализовывать все специальные функции класса.


2. Проверка порядка деструкторов

Создайте класс Composite, содержащий два поля типа Logger:

class Composite { Logger logger1; Logger logger2; public: Composite() { /* ... */ } };

  • В конструкторе Composite добавьте вывод "Composite constructor".

  • В деструкторе — "Composite destructor".

  • Создайте объект Composite в области видимости функции и определите порядок вызова деструкторов.

Цель: Понять порядок инициализации и уничтожения полей класса.


3. Временные объекты и перемещение

Напишите функцию:

void processLogger(Logger&& tempLogger) { std::cout << "Processing temporary logger" << std::endl; }

  • Создайте временный объект Logger() и передайте его в processLogger.

  • Объясните, почему не вызывается конструктор копирования.

Цель: Закрепить работу с rvalue-ссылками и перемещением.


4. Контейнеры и реаллокация

  • Создайте std::vector<Logger>.

  • Добавьте в него 3 элемента через push_back и emplace_back.

  • Запустите программу и объясните:

    • Почему при push_back(Logger()) вызывается перемещающий конструктор.

    • Как emplace_back позволяет избежать лишних вызовов конструкторов.

    • Что происходит при реаллокации вектора?

Цель: Изучить работу с контейнерами и оптимизацию через перемещение.


5. Динамические объекты и умные указатели

  • Создайте динамический объект Logger* dynamicLogger = new Logger();.

  • Удалите его через delete.

  • Перепишите код с использованием std::unique_ptr<Logger>.

  • Объясните, как умные указатели предотвращают утечки памяти.

Цель: Научиться управлять динамической памятью.


6. Запрет копирования

Модифицируйте класс Logger:

  • Удалите конструктор копирования и оператор присваивания.

  • Проверьте, что код Logger a; Logger b = a; вызывает ошибку компиляции.

Цель: Понять, как ограничивать жизненный цикл объектов.


7. Наследование и порядок вызовов

Создайте класс DerivedLogger : public Logger:

  • Добавьте поле Logger memberLogger.

  • В конструкторе и деструкторе DerivedLogger добавьте логирование.

  • Создайте объект DerivedLogger и зафиксируйте порядок вызовов конструкторов и деструкторов.

Цель: Изучить жизненный цикл объектов при наследовании.


8. Анализ кода

Дан код:

Logger createLogger() { return Logger(); } int main() { Logger a; Logger b = a; Logger c = std::move(createLogger()); std::vector<Logger> vec; vec.push_back(Logger()); return 0; }

  • Предскажите, сколько раз вызываются конструкторы (копирования, перемещения) и деструкторы.

  • Проверьте свой ответ, добавив логирование в класс Logger.

Цель: Научиться анализировать жизненный цикл объектов в реальном коде.

Показать полностью
[моё] Гайд Программирование IT C++ Windows Длиннопост
1
1
KirilMersedes
KirilMersedes
7 месяцев назад

Как выбирать первый мотоцикл⁠⁠

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

В гайде пример на один из самых популярных мотов CB400 и его модификации, почти всё приминимо и для других мотов:
Проверка общего вида (и примерные цены деталек, чтобы поторговаться)
Модельный ряд
Как отличить от учебной версии (после мотошколы например)
Что сказать продавцу перед подготовкой просмотру
Чек лист по проверке Двигателя, Рамы, Ходовой, Тормозной системы, Сцеплению, Электроники
Что проверить в документах

Как выбирать первый мотоцикл Мото, Мотоциклы honda, Honda vfr, Гайд, Автоподбор, Мотоциклисты

В итоге тогда купил Honda VFR 2002, до сих пор на нем катаю до работы в сезон, дальняки, териберка, мурманск, спб и тд. Запыленный красавец в конце этого сезона.

Ссылка на гайд гугл докс

[моё] Мото Мотоциклы honda Honda vfr Гайд Автоподбор Мотоциклисты
13
5
mcnikirikitiki
7 месяцев назад
Психология | Psychology

Почему новички тонут в туториалах, а не в знаниях: взгляд опытного разработчика⁠⁠

Современный мир программирования предлагает разработчикам бесконечный поток инструментов, фреймворков и технологий. Однако, как отмечает Тэрранс Крэддок в своей статье на Medium под названием «The Day I Realized My IDE Was a Time Machine», эта избыточность часто приводит к тому, что программисты начинают "копировать код", но теряют глубинное понимание того, как он работает.

Почему новички тонут в туториалах, а не в знаниях: взгляд опытного разработчика Развитие, Успех, Совершенство, Опыт, Будущее, IT, Программирование, Карьера, Гайд, Личность, Саморазвитие, Длиннопост

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

Код как конструктор LEGO

Автор проводит интересную параллель между программированием сегодня и тем, как оно выглядело 20–30 лет назад. В 1999 году, например, он потратил три недели на отладку Perl-скрипта, который сегодня можно написать за 10 минут с помощью современных инструментов. Но есть и обратная сторона медали: недавно он наблюдал, как молодой разработчик, используя ИИ для генерации React-компонента, не смог исправить даже 5% ошибок в полученном коде.

Эта ситуация отражает одну из ключевых проблем современного программирования: разработчики стали зависимыми от автоматизированных инструментов, таких как IDE, плагины и генераторы кода. Они быстро создают приложения, но не понимают, что происходит "под капотом". Как результат, они тратят больше времени на отладку багов, чем могли бы, если бы владели базовыми принципами.

Миф о необходимости постоянного обучения

Одна из главных причин этой проблемы — культ постоянного обучения, который активно продвигается в IT-индустрии. Разработчикам постоянно говорят, что они должны осваивать новые фреймворки, языки и технологии, чтобы оставаться востребованными. Однако Крэддок считает, что это заблуждение.

Он приводит пример программиста, который не смог освоить Kubernetes, но зато досконально изучил работу процессов в Linux. Этот специалист оказался незаменимым, потому что мог решать сложные задачи, которые были недоступны сертифицированным инженерам Kubernetes. Его глубокие знания операционной системы и сетей оказались важнее модных технологий.

Что делать разработчикам?

Крэддок предлагает альтернативный подход: вместо того чтобы гнаться за новыми инструментами, сосредоточиться на базовых принципах программирования. Вот несколько его рекомендаций:

  1. Понять, как компьютер исполняет код на низком уровне
    Узнайте, как работает процессор, память, стек и куча. Это поможет вам писать более эффективный код и лучше понимать, почему возникают ошибки.

  2. Освоить сети и протоколы
    Изучите, как работают HTTP, TCP/IP и DNS. Это особенно важно для веб-разработчиков, которые часто сталкиваются с сетевыми проблемами.

  3. Глубже разобраться в алгоритмах и структурах данных
    Алгоритмы — это не только тема для собеседований. Понимание их работы поможет вам писать оптимальный код и решать сложные задачи.

  4. На месяц отказаться от новых инструментов
    Автор предлагает эксперимент: на 30 дней прекратить изучение новых технологий и углубиться в уже известные. Например:

    • Напишите компонент React без использования фреймворка.

    • Работайте с SQL напрямую, без ORM.

    • Оптимизируйте свой код, измеряя его производительность.

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

Глубина знаний важнее модных технологий

Крэддок подчеркивает, что глубокое понимание технологий всегда важнее их новизны. Он приводит пример разработчика, который всю карьеру работал с 15-летним Java-кодом, но настолько хорошо разбирался в JVM (Java Virtual Machine), что его услуги стоили в разы дороже, чем у модных full-stack инженеров. Такие специалисты становятся незаменимыми, потому что могут решать задачи, которые другие даже не знают, как начать.

Дополнение: Как развивать мышление программиста?

Кроме советов Крэддока, можно добавить несколько дополнительных рекомендаций для тех, кто хочет стать профессионалом:

  1. Решайте задачи самостоятельно
    Не спешите искать готовые решения в интернете. Попробуйте разобраться в проблеме сами, даже если это займет больше времени.

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

  3. Участвуйте в open-source проектах
    Это отличный способ получить реальный опыт и научиться работать с чужим кодом.

  4. Задавайте вопросы
    Если что-то непонятно, не бойтесь спрашивать коллег или искать ответы в документации. Чем больше вопросов вы зададите, тем глубже станет ваше понимание.

  5. Практикуйтесь в реальных проектах
    Создавайте свои проекты, даже если они кажутся маленькими и незначительными. Реальная практика — лучший учитель.

Заключение

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

Показать полностью 1
[моё] Развитие Успех Совершенство Опыт Будущее IT Программирование Карьера Гайд Личность Саморазвитие Длиннопост
3
10
Agmioli
Agmioli
7 месяцев назад
Программы и Браузеры

Как смотреть в Вконтакте страницы/группы без авторизации, если мешает всплывающее окно?⁠⁠

Как смотреть в Вконтакте страницы/группы без авторизации, если мешает всплывающее окно? ВКонтакте, Социальные сети, Лайфхак, Браузер, Сайт, Инструкция, Гайд, Всплывающее окно

Как смотреть в Вконтакте страницы и группы без авторизации, если мешает всплывающее окно?

Вы хотите смотреть браузерную версию ВКонтакте на компьютере и т.п, без авторизации (не вводя логин и пароль, и не регистрируя там аккаунт).
Но вам мешает выплывающее окно с требованием войти в аккаунт, есть решение проблемы.

Если уведомление появилось только один раз - нажмите на клавишу ESC всего один раз.

Если уведомление чаще начинает всплывать - нажимайте несколько раз клавишу ESC, пока оно не исчезнет.

Если уведомление почти непрерывно появляется вновь и вновь, то:

Зажать клавишу ESC не отпуская ее, смотреть и листать страницу колесиком мыши, иногда нажимая левую кнопку мыши, если нужно на что-то нажать/перейти.

Клавиша ESC выполняет функцию автоматического закрывания назойливого окна авторизации.

Показать полностью
[моё] ВКонтакте Социальные сети Лайфхак Браузер Сайт Инструкция Гайд Всплывающее окно
1
66
DELETED
DELETED
7 месяцев назад
Лига Геймеров

Как нагибать в Kingdom Come: Deliverance II. Простой и полный гайд по боевой системе⁠⁠


Вступление. О системе сохранений и трате вашего времени.

Прежде всего, попытаюсь спасти вас от излишнего баттхёрта и кое-что объясню. В KCD система сохранений не соответствует сложности геймплея, особенно если вы новичок во франшизе. Моргните если согласны. Вот видите? Поэтому - мой вам первый совет:

Идите в папку игры, и найдите экзешник с которого будете её запускать, например С:\Kingdom.Come.Deliverance.II\Bin\Win64MasterMasterSteamPGO

создайте ярлык KingdomCome.exe

зайдите в свойства ярлыка и перейдите в Ярлык, далее в строке Объект допишите к пути к ярлыку " -devmode", без кавычек, но не забывая про пробел.

При каждом запуске игрового клиента жмякайте тильду, пишите в консоль "wh_sys_NoSavePotion = 1", затем Enter. Теперь вы можете сохраняться без шнапса и без эффектов опьянения от него. Вам решать, злоупотреблять этим или нет, ведь это ваше личное время и удовольствие от игры.

О, кстати: в папке сохранений не может быть слишком много. Если игра перестала сохраняться, вам придётся почистить ваши шнапсовые файлы, переместив их в другую папку. Необязательно удалять их насовсем, просто переместите.


О том, что вам стоит сделать ещё до боя с кем-либо (а также ещё до начала игры вообще):

Настройте чувствительность мыши на максимум. Отключите повышенную точность указателя в дополнительных настройках мыши Windows. Также настройте на максимум чувствительность в настройках управления самой игры.

Далее, запомните раз и навсегда: никогда не бейтесь против более чем одного. Заранее используйте:

*скрытность, а также ночное время в сочетании с зельями 'сыча'

*верховую езду (повышайте смелость вашего Сивки любым снаряжением и доступными перками, а также не забывайте заботиться о нём - хвалите его и заказывайте чистку коня почаще)

*арбалет с отравленными 'окукливанием' бронебойными болтами

*выманивайте одну цель к вам подальше от остальных

*используйте местность

*быстрый бег (но только если вы действительно имеете статистику и перки, позволяющую вам убегать пешком).


Выбор оружия.

Из стрелкового - только арбалет достоин внимания, и только усиленный тяжелый арбалет (квест в замке Малешов - не пропустите его!) способен за один выстрел выбить из боя латника. Он поковыляет немного, истечёт кровью и умрёт сам. Правда, вам придётся почаще соревноваться в стрельбе, да и стрелять имеет смысл только когда силуэт противника достаточно велик чтобы уверенно поразить его без права на промах. 10-20 метров дистанция в самый раз.

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


(Пропустите эту часть, если уже получили умение "мастерский удар")

До того, как вы попытаетесь скрестить мечи с кем-то ещё, вы хотите получить подсказку от нищенки Беты сразу после того, как Ян Птачек покинет вас после дня, проведённого вместе в колодках. Она рядом на площади и подзовёт вас, чтобы поблагодарить за вызванный ажиотаж: пока селяне закидывали вашего пана гнилыми продуктами, она воспользовалась их хорошим расположением духа и выклянчила немало грошей за день. Она расскажет вам о цыганском таборе на западе карты, в нескольких часов ходьбы. Там есть силач и фехтовальщик по имени Кот, и если вы после обучения одолеете его в поединке, он покажет вам мастерский удар - а это лютейшая имба против ИИ, единственная атака которой никто не может избежать парированием. Побить Кота проще, если отравить меч хорошим ядом или Окукливанием. Будьте очень осторожны с ним, он иногда пропускает ваши удары, но не дайте ему войти в клинч или ответить мастерским ударом - держите оружие всегда НЕ с противоположной стороны - в этом, и только в этом бою.


Как действовать непосредственно в бою:

Никогда и ни при каких условиях не пренебрегайте доспехом. Носите на себе железо. Можете не защищать ноги, но остальное - обязательно хотя бы на 100 брони от всех типов урона.

Не позволяйте полоске выносливости проседать меньше чем на 30%. Если так случилось, парируйте в тайминг (это не тратит выносливости), но не бейте, не уклоняйтесь и не уходите в глухую оборону, зажав ЛКМ для обычного блока.

В бою всё внимание - на перекрестие. На каждый удар отвечайте идеальным блоком, прожав ПКМ точно в тайминг (зелёный щит по центру перекрестия), но одновременно с этим вы всегда стараетесь держать оружие с противоположной стороны от оружия противника. Читали внутриигровые подсказки? Да-да, так вам будет чуть труднее блокировать удар, всё верно. Но чем скорее вы привыкнете держать меч таким образом, тем проще вам будет перейти к максимально эффективной тактике, не оставляющей противнику шанс в схватке 1 на 1 с вами.

Итак, вот эта тактика: когда вы наловчились парировать каждый удар точно в тайминг, не тратя выносливость, вы можете начать прожимать ЛКМ одновременно с ПКМ при этом. Если противник не выполнил финт, на который вы не успели отреагировать, и бил с противоположной от вашей стороны, то начнётся анимация мастерского удара, которая нанесёт ему большой урон и нередко ваншотит небронированную цель. Не используйте это, если рядом есть ещё один противник, ведь во время анимации вы не сможете защититься. Не допускайте окружения вас!


О движении в бою.

На случай, если вы не избежали схватки с множеством противников и если все перечисленные мной выше варианты, как этого избежать уже не вариант, то попробуйте перемещаться клавишами A+S или S+D, в зависимости от того, с какой стороны вас пытаются окружить союзники непосредственного оппонента. Так вы фактически всё ещё бьётесь 1 на 1, а с соответствующими перками имеете даже некоторое преимущество.

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

Вы можете уклоняться пробелом. Но вам это не нужно. Вы можете просто двигаться A+S или S+D и всё равно управлять дистанцией. Вместо попыток защититься, за которыми последует удар по вам снова и снова, лучше защищаться и одновременно атаковать мастерским ударом.

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


Чините и затачивайте оружие. Это не одно и то же. Заточка даст вам с перком бонус к урону. Также выбирайте любые перки на урон.


Ситуативно полезные приёмы в бою:

'Поймать на дистанции'. Я двигаюсь назад, противник вынужден идти на меня прежде чем ударить. Я иду вперёд, одновременно (!) выполняя укол. Этот простейший приём работал даже против мастера меча на поединке чести в Кутна-Горе, хотя одолеть его оказалось возможным только путём абьюза мастерского удара и избегания клинча. Кстати это полезно против Кота в самом начале игры.

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

'I FEEL QUITE HUNGRY!' Генри может издать боевой клич, и есть пара перков которые усилят его урон и даже могут напугать противника при этом. Для этого увеличьте дистанцию между вами и быстро прожмите Alt+2. Не вздумайте отвлекаться от перекрестия при этом!


Ну, вот и всё. Чтобы вам лучше запомнить ключевые моменты гайда, повторю их кратко:

Сражайтесь 1 на 1 даже если вас окружают. Владейте пространством между вами, и меняйте место для боя если оно невыгодно вам.

Ваш выбор - длинный меч.

Всё внимание на перекрестие. Зелёный щит - ПКМ+ЛКМ. Не мастерстрайк, так парирование точно сделаете.

Выносливость бережём всегда.


Если чего-то в гайде не перечислено - уклонения, обычные блоки, связки ударов, серии парирований друг друга, финты - это не ошибка. Вам просто не нужно это знать. Просто соблюдайте указания, и будете нагибать всегда - единственное что вам помешает это плохие статы в начале игры, так что потренироваться с сотником Семина или Котом лучше как можно раньше. Не ленитесь, это сэкономит вам время в дальнейшем.

Показать полностью
[моё] Kingdom Come: Deliverance II Гайд Длиннопост
78
9
mcnikirikitiki
7 месяцев назад
Лига программистов

Основы программирования на C++: Адаптеры и представления⁠⁠

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

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

Здравствуйте, мои маленькие любители программирования!

Адаптеры и представления — это инструменты, которые позволяют работать с данными более удобным и эффективным способом, не создавая новых копий данных. Они не являются самостоятельными контейнерами, а используют существующие структуры для хранения данных, предоставляя при этом специализированный интерфейс.


Адаптеры

1. std::stack

Стек — это структура данных, которая работает по принципу LIFO (Last In, First Out). Это означает, что последний добавленный элемент будет первым извлеченным.

  • Основные операции:

    • push: Добавляет элемент на вершину стека.

    • pop: Удаляет элемент с вершины стека.

    • top: Возвращает элемент на вершине стека без его удаления.

    • empty: Проверяет, пуст ли стек.

#include <iostream>

#include <stack>

int main() {

std::stack<int> s;

s.push(1);

s.push(13);

s.pop(); // Удаляем элемент с вершины (останется только 1)

std::cout << s.top() << "\n"; // Выводим элемент на вершине (1)

if (s.empty()) {

std::cout << "Stack is empty\n";

}

}

Особенности:

  • По умолчанию std::stack использует std::deque для хранения данных, но можно заменить его на другой контейнер, например, std::list.


2. std::queue

Очередь реализует принцип FIFO (First In, First Out). Элементы добавляются в конец очереди, а извлекаются из начала.

  • Основные операции:

    • push: Добавляет элемент в конец очереди.

    • pop: Удаляет элемент из начала очереди.

    • front: Возвращает первый элемент очереди.

    • back: Возвращает последний элемент очереди.

    • empty: Проверяет, пуста ли очередь.

#include <iostream>

#include <queue>

int main() {

std::queue<int> q;

q.push(1);

q.push(13);

std::cout << q.front() << "\n"; // Выводит первый элемент (1)

std::cout << q.back() << "\n"; // Выводит последний элемент (13)

q.pop(); // Удаляем первый элемент (останется только 13)

if (q.empty()) {

std::cout << "Queue is empty\n";

}

}

Особенности:

  • По умолчанию используется std::deque, но можно заменить его на другой контейнер, поддерживающий операции push_back, pop_front и т. д.


3. std::priority_queue

Очередь с приоритетами позволяет быстро получать максимальный (или минимальный) элемент. Она основана на структуре данных "куча".

  • Основные операции:

    • push: Добавляет элемент в очередь.

    • pop: Удаляет максимальный элемент.

    • top: Возвращает максимальный элемент без его удаления.

    • empty: Проверяет, пуста ли очередь.

#include <iostream>

#include <queue>

int main() {

std::priority_queue<int> pq;

for (int x : {3, 14, 15, 92, 6, 0, 1, 10}) {

pq.push(x);

}

while (!pq.empty()) {

std::cout << pq.top() << "\n"; // Выводит элементы в порядке убывания

pq.pop();

}

}

Особенности:

  • По умолчанию используется std::vector для хранения данных.

  • Можно изменить порядок сортировки, передав третий параметр, например, std::greater<int> для получения минимального элемента.


Представления

1. std::string_view

std::string_view — это легковесная обертка над строкой, которая позволяет работать с подстроками без создания их копий. Она не владеет памятью, а лишь ссылается на существующую строку.

  • Преимущества:

    • Быстрее, чем создание новой строки (std::string).

    • Экономит память, так как не копирует данные.

#include <iostream>

#include <string>

#include <string_view>

int main() {

std::string s = "Hello, world! How do you do?";

std::string_view sv = s; // Создаем string_view для строки s

auto sub = sv.substr(7, 5); // Выделяем подстроку "world"

std::cout << sub << "\n"; // Выводит "world"

std::cout << s << "\n"; // Исходная строка не изменилась

}

Ограничения:

  • std::string_view не позволяет изменять строку.

  • Ссылается на исходную строку, поэтому если строка уничтожается, string_view становится невалидным.


2. Пример некорректного использования std::string_view

Если исходная строка выходит из области видимости, string_view теряет доступ к данным:

#include <iostream>

#include <string>

#include <string_view>

#include <vector>

int main() {

std::vector<std::string_view> lines;

for (int i = 0; i < 5; ++i) {

std::string line;

std::getline(std::cin, line);

lines.push_back(line); // string_view ссылается на временную строку

}

for (auto item : lines) {

std::cout << item << "\n"; // Ошибка! Строки уже уничтожены

}

}

Решение: Используйте std::string, если данные должны сохраняться после выхода из области видимости.


3. std::span

std::span — аналог std::string_view, но для массивов или векторов. Он предоставляет доступ к непрерывной последовательности элементов в памяти.

#include <iostream>

#include <vector>

#include <span>

int main() {

std::vector<int> v = {1, 2, 3, 4, 5};

std::span<int> span(v); // Создаем span для вектора

for (int x : span) {

std::cout << x << " "; // Выводит элементы вектора

}

}

Особенности:

  • Не владеет данными.

  • Может использоваться для работы с подмассивами.


Заключение

Адаптеры и представления позволяют работать с данными более эффективно:

  • Адаптеры (std::stack, std::queue, std::priority_queue) предоставляют специализированный интерфейс для работы с контейнерами.

  • Представления (std::string_view, std::span) позволяют избежать ненужных копирований данных, но требуют осторожности при работе с временными объектами.

Задачи на std::stack

  1. Обратный порядок слов
    Напишите программу, которая принимает строку текста и выводит слова в обратном порядке, используя std::stack.
    Пример:
    Ввод: "Hello world from C++"
    Вывод: "C++ from world Hello"

  2. Проверка правильности скобок
    Напишите программу, которая проверяет, правильно ли расставлены скобки в строке (круглые, квадратные и фигурные). Используйте std::stack.
    Пример:
    Ввод: "{[()()]}" → Вывод: "Правильно"
    Ввод: "{[(])}" → Вывод: "Неправильно"

  3. Калькулятор с обратной польской записью
    Реализуйте калькулятор, который вычисляет выражения в обратной польской записи (RPN). Например:
    Ввод: "3 4 + 2 * 7 /" → Вывод: 2


Задачи на std::queue

  1. Симуляция очереди в банке
    Напишите программу, которая моделирует очередь клиентов в банке. Каждый клиент имеет номер. Программа должна позволять добавлять новых клиентов в очередь и обслуживать их по принципу FIFO.
    Пример:
    Ввод:

    add 1

    add 2

    serve

    Вывод: "Client 1 served"

  2. Поиск минимального элемента в очереди
    Напишите программу, которая находит минимальный элемент в очереди за один проход. Используйте только операции push, pop и front.

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


Задачи на std::priority_queue

  1. Топ-N самых больших чисел
    Напишите программу, которая находит N самых больших чисел из потока данных. Используйте std::priority_queue.
    Пример:
    Ввод: N = 3, данные = {5, 1, 9, 2, 8, 3} → Вывод: {9, 8, 5}

  2. Сортировка задач по приоритету
    У вас есть список задач с приоритетами. Напишите программу, которая обрабатывает задачи в порядке убывания приоритета.
    Пример:
    Ввод:

    Task1 Priority=3

    Task2 Priority=1

    Task3 Priority=2

    Вывод:

    Task1

    Task3

    Task2

  3. Минимальная куча
    Реализуйте минимальную кучу с помощью std::priority_queue и напишите программу, которая выводит элементы в порядке возрастания.


Задачи на std::string_view

  1. Подсчет подстрок
    Напишите программу, которая подсчитывает количество вхождений заданной подстроки в строку, используя std::string_view.
    Пример:
    Ввод: "Hello world", "o" → Вывод: 2

  2. Разбиение строки на слова
    Напишите программу, которая разбивает строку на слова, используя std::string_view.
    Пример:
    Ввод: "Hello world from C++" → Вывод:

    Hello

    world

    from

    C++

  3. Проверка префикса и суффикса
    Напишите программу, которая проверяет, начинается ли строка с заданного префикса и заканчивается ли заданным суффиксом, используя std::string_view.
    Пример:
    Ввод: "Hello world", prefix="Hello", suffix="world" → Вывод: "Да"


Задачи на std::span

  1. Сумма элементов массива
    Напишите программу, которая вычисляет сумму элементов массива или вектора, используя std::span.
    Пример:
    Ввод: {1, 2, 3, 4, 5} → Вывод: 15

  2. Поиск максимального элемента
    Напишите программу, которая находит максимальный элемент в массиве или векторе, используя std::span.

  3. Реверс части массива
    Напишите программу, которая переворачивает часть массива, используя std::span.
    Пример:
    Ввод: {1, 2, 3, 4, 5}, start=1, end=4 → Вывод: {1, 4, 3, 2, 5}


Комбинированные задачи

  1. Очередь с приоритетом задач
    Реализуйте систему управления задачами, где каждая задача имеет приоритет и описание. Используйте std::priority_queue для хранения задач и std::string_view для работы с описанием.

  2. Стек с поддержкой минимума
    Реализуйте стек, который поддерживает операцию получения минимального элемента за O(1). Используйте два std::stack.

  3. Анализ логов
    Напишите программу, которая анализирует лог-файл и выводит топ-N самых частых сообщений. Используйте std::unordered_map для подсчета частот и std::priority_queue для выбора топ-N.

  4. Работа с подстроками
    Напишите программу, которая находит самую длинную подстроку без повторяющихся символов, используя std::string_view.

  5. Многомерные массивы
    Реализуйте функцию, которая работает с двумерным массивом через std::span. Например, найдите сумму всех элементов или максимальный элемент.

Показать полностью
[моё] Программа Гайд C++ IT Программирование Длиннопост
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии