C/C++ Development | YeaHub – Telegram
C/C++ Development | YeaHub
827 subscribers
228 photos
56 videos
1 file
380 links
Теория, подготовка к интервью и курсы для C/C++ разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
🤝 Добро пожаловать в экосистему YeaHub!

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников. Подпишитесь на наши каналы, чтобы не пропустить:

👩‍💻 C# 🤖 ML Engineer

👩‍💻 C/C++ 🖥 Data Science

👩‍💻 Java 👩‍💻 Python

🖥 PHP 👩‍💻 Frontend

👣 Rust 👣 Golang

🖥 Ruby 👩‍💻 Node.js

👩‍💻 QA 👩‍💻 Android

👩‍💻 iOS 👩‍💻 Game Dev

💻 DevOps 🖥 Общее IT

📆 Митапы 👨‍💻 Вакансии

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

💬 YeaHub Community: Общение, обмен опытом и поддержка единомышленников

В наших каналах вы найдете:
🔹 Вакансии и карьерные рекомендации
🔹 Мероприятия и митапы
🔹 Вопросы и задачи с собеседований
🔹 Практику, теорию, курсы и полезные советы

Миссия YeaHub — создать сообщество активных IT-специалистов, которые вместе развиваются, задают стандарты в индустрии, общаются и помогают друг другу. Мы стремимся к созданию саморегулирующегося сообщества, где каждый участник вносит вклад в развитие отрасли и поддерживает высокие профессиональные стандарты.


👍 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
C/C++ Development | YeaHub pinned «🤝 Добро пожаловать в экосистему YeaHub! YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников. Подпишитесь на наши каналы, чтобы не пропустить: 👩‍💻 C# 🤖 ML Engineer 👩‍💻»
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🛞 Идеальный инструмент для работы с аудио без задержек

Libsoundio — это библиотека на языке C для работы с аудио на низком уровне, которая предоставляет интерфейс для кроссплатформенной работы с аудиопотоками в реальном времени.

🟠Она поддерживает такие популярные звуковые системы, как ALSA, PulseAudio, CoreAudio, WASAPI и JACK, что делает её пригодной для использования на Windows, macOS и Linux.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Какой порядок вызова деструкторов?

При удалении объекта, созданного с использованием наследования, деструкторы вызываются в следующем порядке:
🟠Сначала вызывается деструктор производного класса, чтобы очистить ресурсы, связанные с ним.
🟠Затем вызывается деструктор базового класса.
Такой порядок обеспечивает корректное освобождение всех ресурсов в порядке, обратном их созданию.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
#ЛитКод
Задача: 445. Add Two Numbers II


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

Вы можете предположить, что оба числа не содержат начальных нулей, за исключением самого числа 0.

Пример:
Input: l1 = [7,2,4,3], l2 = [5,6,4]
Output: [7,8,0,7]


👨‍💻 Алгоритм:

1⃣Создайте два связанных списка r1 и r2, чтобы хранить перевернутые связанные списки l1 и l2 соответственно. Создайте два целых числа totalSum и carry для хранения суммы и переноса текущих цифр. Создайте новый ListNode, ans, который будет хранить сумму текущих цифр. Мы будем складывать два числа, используя перевернутый список, добавляя цифры по одной. Продолжаем, пока не пройдем все узлы в r1 и r2.

2⃣Если r1 не равен null, добавляем r1.val к totalSum. Если r2 не равен null, добавляем r2.val к totalSum. Устанавливаем ans.val = totalSum % 10. Сохраняем перенос как totalSum / 10. Создаем новый ListNode, newNode, который будет иметь значение как перенос. Устанавливаем next для newNode как ans. Обновляем ans = newNode, чтобы использовать ту же переменную ans для следующей итерации. Обновляем totalSum = carry.

3⃣Если carry == 0, это означает, что newNode, созданный в финальной итерации цикла while, имеет значение 0. Поскольку мы выполняем ans = newNode в конце каждой итерации цикла while, чтобы избежать возврата связанного списка с головой, равной 0 (начальный ноль), возвращаем следующий элемент, т.е. возвращаем ans.next. В противном случае, если перенос не равен 0, значение ans не равно нулю. Следовательно, просто возвращаем ans.

😎 Решение:
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* temp = nullptr;
while (head != nullptr) {
temp = head->next;
head->next = prev;
prev = head;
head = temp;
}
return prev;
}

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* r1 = reverseList(l1);
ListNode* r2 = reverseList(l2);

int totalSum = 0;
int carry = 0;
ListNode* ans = new ListNode(0);
while (r1 != nullptr || r2 != nullptr) {
if (r1 != nullptr) {
totalSum += r1->val;
r1 = r1->next;
}
if (r2 != nullptr) {
totalSum += r2->val;
r2 = r2->next;
}

ans->val = totalSum % 10;
carry = totalSum / 10;
ListNode* head = new ListNode(carry);
head->next = ans;
ans = head;
totalSum = carry;
}

return carry == 0 ? ans->next : ans;
}
};


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#статьи
😊 Библиотека std::map

Эта статья предоставляет практическое руководство по работе с библиотекой std::map из стандартной библиотеки шаблонов C++ (STL)!

🟠 Автор объясняет ключевые аспекты использования std::map, включая добавление, удаление и поиск элементов, а также демонстрирует примеры трансформации ключей и значений.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Это эмулятор NES, написанный на C/C++ с использованием чистого WinAPI.

Он эмулирует процессор 6502, графику и звук NES, поддерживает ROM-игры для NTSC и PAL, использует GDI для графики и WinMM для звука

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#собес
🤔 Какая разница между rvalue и lvalue?

🟠 lvalue — это объект с адресом в памяти, который можно изменить или использовать для ссылок.
🟠 rvalue — временное значение, не имеющее адреса в памяти, обычно результат выражения.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🛞 Диск и память

Чувак, вызывай puts() вместо printf() и перестань линковать CRT — уложишься в 4К.

В C можно еще больше уменьшить размер файла, если не линковать стандартную библиотеку и использовать простые системные вызовы (syscall вместо printf()/puts()).
Rust, напротив, всегда включает runtime и стандартную библиотеку, из-за чего его бинарники гораздо больше.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 Quandoom
Это порт DOOM для квантовых компьютеров, использующий 70 000 кубитов и 80 миллионов логических вентилей.

Работает со скоростью 10–20 FPS на классическом оборудовании с использованием легковесного C++ QASM-симулятора.

🟠Обратите внимание, что запуск симулятора требует около 5–6 ГБ оперативной памяти и может занять некоторое время при загрузке из-за большого размера схем
Ознакомьтесь

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#видео
🏕 Создание воксельного движка

Это - серия видео, посвященных разработке воксельного движка, напоминающего механику игры Minecraft, с использованием языка программирования C++!
Смотреть видео

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#полезное
🤔 std::byteswap

std::byteswap (C++23) меняет порядок байтов числа, что полезно для работы с big-endian и little-endian системами.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#собес
🤔 Что такое таблица виртуальных методов?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM