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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес
🤔 Что такое динамическая структура данных?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
😎 Олды здесь

Allegro –- олдскульная библиотека для C++ (с 1990-х), чтобы писать простые 2D-игры: аркады, платформеры. Всё вручную — графика, звук, ввод.

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

Сейчас её редко используют в крупных проектах, так как есть более современные движки вроде SDL, SFML, Godot, Unity

Но она до сих пор жива — https://liballeg.org/index.html

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 SGCL — это библиотека управления памятью для C++

Разработанная для обеспечения безопасного и эффективного управления памятью без накладных расходов, обычно связанных с методами сборки мусора.

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

🟠Поддержка циклов владения
🟠SGCL разработан с учетом стандартов C++17 и выше, обеспечивая совместимость с современными практиками программирования.
🟠Простота использования
Ознакомиться

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Кажется, дебаг займет очень много времени...

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
6
#Собес
🤔 Что такое стек (stack) в С?

Стек - это структура данных, работающая по принципу LIFO (Last In, First Out), что означает, что последний добавленный элемент удаляется первым. Доступ к
элементам возможен только с вершины стека. Основные операции:
push ( ) - добавление элемента в стек.
pop ( ) - удаление элемента из стека.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤔 Что каждый разработчик должен знать о вычислениях на GPU

Статья предоставляет введение в архитектуру и вычислительные возможности графических процессоров (GPU). Автор отмечает, что, в отличие от центральных процессоров (CPU), которые оптимизированы для последовательного выполнения команд с низкой задержкой, GPU разработаны для массового параллелизма и высокой пропускной способности, что делает их особенно эффективными для задач, требующих одновременной обработки большого объема данных, таких как графика, численные вычисления и глубокое обучение.
Ознакомиться

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#ЛитКод
Задача: 711. Number of Distinct Islands II

Вам дана двоичная матричная сетка m x n. Остров - это группа 1 (представляющая сушу), соединенных в четырех направлениях (горизонтальном или вертикальном). Можно предположить, что все четыре края сетки окружены водой. Остров считается одинаковым с другим, если они имеют одинаковую форму, или имеют одинаковую форму после поворота (только на 90, 180 или 270 градусов) или отражения (влево/вправо или вверх/вниз). Верните количество разных островов.

Пример:
Input: grid = [[1,1,0,0,0],[1,0,0,0,0],[0,0,0,0,1],[0,0,0,1,1]]
Output: 1


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

1⃣Пройдите по каждому элементу матрицы, если найдена земля (1), выполните DFS для обнаружения всех связанных с этим островом земель и сохраните форму острова.

2⃣Нормализуйте форму острова, применив все возможные повороты и отражения, чтобы найти каноническую форму.

3⃣Используйте множество для хранения всех уникальных канонических форм и верните размер этого множества.

😎 Решение:
class Solution {
public:
int numDistinctIslands2(vector<vector<int>>& grid) {
unordered_set<string> uniqueIslands;

for (int i = 0; i < grid.size(); ++i) {
for (int j = 0; j < grid[0].size(); ++j) {
if (grid[i][j] == 1) {
vector<pair<int, int>> shape;
dfs(grid, i, j, i, j, shape);
uniqueIslands.insert(normalize(shape));
}
}
}

return uniqueIslands.size();
}

private:
void dfs(vector<vector<int>>& grid, int i, int j, int baseI, int baseJ, vector<pair<int, int>>& shape) {
if (i < 0 || i >= grid.size() || j < 0од

Задача
: 
711. Number ofgrid[i][j]
 == 0) {
return;
}
grid[i][j] = 0;
shape.emplace_back(i - baseI, j - baseJ);
dfs(grid, i + 1, j, baseI, baseJ, shape);
dfs(grid, i - 1, j, baseI, baseJ, shape);
dfs(grid, i, j + 1, baseI, baseJ, shape);
dfs(grid, i, j - 1, baseI, baseJ, shape);
}

string normalize(vector<pair<int, int>>& shape) {
vector<vector<pair<int, int>>> shapes(8);
for (auto& p : shape) {
int x = p.first, y = p.second;
shapes[0].emplace_back(x, y);
shapes[1].emplace_back(x, -y);
shapes[2].emplace_back(-x, y);
shapes[3].emplace_back(-x, -y);
shapes[4].emplace_back(y, x);
shapes[5].emplace_back(y, -x);
shapes[6].emplace_back(-y, x);
shapes[7].emplace_back(-y, -x);
}
for (auto& s : shapes) {
sort(s.begin(), s.end());
}
string minShape = to_string(shapes[0][0].first) + "," + to_string(shapes[0][0].second);
for (auto& s : shapes) {
string sStr;
for (auto& p : s) {
sStr += to_string(p.first) + "," + to_string(p.second) + ";";
}
minShape = min(minShape, sStr);
}
return minShape;
}
};


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
🤓 Всё понятным языком

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес
🤔 Что такое цикл (lоор) в С?

Цикл в С - это конструкция, позволяющая повторять выполнение кода, пока выполняется заданное условие. В С есть три основных типа циклов:
for - используется, когда известно количество итераций.
while - выполняется, пока условие истинно.
do while - выполняется хотя бы один раз, затем проверяет условие.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
😬 Создатель C++ бьет тревогу из-за "серьезных атак" на язык программирования.

Бьярне Страуструп, создатель C++, обратился к сообществу с призывом защитить язык, который в последние годы подвергается критике со стороны кибербезопасности и технических экспертов из-за проблем с ручным управлением памяти. C и C++ полагаются на него, что приводит к ошибкам выхода за пределы чтения и записи, которые, в свою очередь становятся источником для уязвимостей и составляют большинство проблем в крупных проектах.

Страуструп признает, что C++ нуждается в срочных мерах для улучшения безопасности, особенно в свете рекомендаций правительственных агентств, которые рекомендуют отказаться от использования "небезопасных" языков к 2026 году. Он предлагает использовать фреймворк "Profiles", который может помочь в решении этих проблем, но скептики считают, что это решение не будет готово вовремя.
theregister.com

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Рендерер VoxelSpace на старом Atari ST с 1 МБ памяти и процессором на 8 МГц, поддерживающем всего 16 цветов достиг впечатляющих результатов по оптимизации.

Разработчики потратили много времени на оптимизацию, используя C и встроенный m68k-ассемблер.

Недавно получилось уменьшить использование CRT, благодаря чему исполняемый файл стал всего 13430 байт, освободив почти 200 КБ оперативной памяти. ☕️

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

Исходный код и двоичные файлы доступны на Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🤔 MBASE

Это высокоуровневая неблокирующая библиотека для вывода больших языковых моделей, разработанная на основе проекта llama.cpp!

✔️ Ее цель — предоставить разработчикам инструменты и API для интеграции популярных LLM в свои приложения с минимальными потерями производительности и затратами на разработку. Библиотека поддерживает неблокирующий ввод-вывод, что позволяет эффективно обрабатывать запросы без задержек, связанных с ожиданием завершения операций. Это особенно полезно при создании приложений, требующих высокой отзывчивости и способности обрабатывать несколько запросов одновременно. MBASE предоставляет гибкие и настраиваемые интерфейсы, упрощающие процесс интеграции LLM в различные проекты, будь то чат-боты, системы рекомендаций или другие приложения, использующие возможности современных языковых моделей.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Что такое EOF (end of file) в С?

EOF (End Of File) в С указывает на конец файла при чтении данных. При достижении конца файла стандартные функции, такие как fgetc(), fscanf() , fgets() , возвращают EOF .

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😊 CUTLASS (CUDA Templates for Linear Algebra Subroutines)

Это коллекция C++ шаблонов, разработанная NVIDIA для реализации высокопроизводительных операций умножения матриц (GEMM) и связанных с ними вычислений на GPU с использованием CUDA!

🚩 Библиотека предоставляет модульные и повторно используемые компоненты, которые упрощают разработку пользовательских ядер и приложений, оптимизированных для современных архитектур NVIDIA, включая Volta, Turing, Ampere, Ada, Hopper и Blackwell.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Media is too big
VIEW IN TELEGRAM
#видео
👍 Токенизатор LLM на C

Избранный Богом разработчик на Си, Цодинг, создает токенизатор LLM на Си.
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Напишите собственную оболочку

Это базовые уроки для разработки собственного интерпретатора команд в Linux, который сможет управлять процессами, обрабатывать ввод команд и выполнять программы
📱 Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое файл (file) в С?

Файл в С - это область памяти на диске, используемая для хранения данных. Файлы позволяют хранить информацию между запусками программы, в отличие от переменных. Работа с файлами осуществляется через функции fopen() , fclose() , fread(), fwrite()

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 std::unordered_map::
emplace_hint()


std::unordered_map::emplace_hint() позволяет вставлять элементы в хеш-таблицу с подсказкой для оптимизации. Это особенно полезно, если известно, куда примерно должен встать новый элемент, ускоряя операцию вставки.
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😇 Продвинутый семинар по C++

Все видеоролики очень насыщенные, с очень хорошим содержанием.

Высокопроизводительные вычисления (HPC) на C++
Инфраструктура C++ и текстовые ресурсы
RAII, владение ресурсами, указатели и руководства по ним
Обобщённое программирование (Generic Programming), часть 1
Функциональные и обобщённые утилиты программирования
и тд.
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#статьи
🥺 CMake: Настройка проекта, подключение библиотек и мучения с Vulkan
Ознакомиться

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое статическая переменная (static variable) в C?

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

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