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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😊 Cute_headers

Набор однострочных заголовочных файлов на языках C и C++, предназначенных для упрощения разработки игр!

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Эта ассамблея

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#Собес
🤔 Для чего используется точка с запятой (;) в конце каждого оператора программы?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰21
Этот чувак однажды проснулся и такой: "Ок, давай превратим:"

printf("hello world\n");  




std::cout << "hello world" << std::endl; 


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰42👍1
#полезное
🤯 Полнофункциональный файловый менеджер на чистом C весит меньше, чем стандартное "Hello, World!" на Rust

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


try_emplace() — это метод std::unordered_map, который вставляет элемент только в том случае, если ключ отсутствует. В отличие от insert() и operator[], он избегает ненужного копирования или перемещения значений.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое заголовочные файлы и каковы их применения в языке С?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
🫠 Это официальная документация по препроцессору C++ в GNU Compiler Collection (GCC)

Препроцессор C++ выполняет начальную обработку исходного кода перед компиляцией, обрабатывая директивы, такие как #define, #include, #if, #pragma и другие.

🟠Основы работы препроцессора
🟠Макросы
🟠Условную компиляцию
🟠Встроенные директивы GCC
Ознакомиться

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
#полезное
🥺 std::ranges::views
::filter


std::ranges::views::filter (C++20) позволяет удобно фильтровать элементы в диапазоне без создания временных контейнеров. Это делает код более выразительным и эффективным.
Документация

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🥰21
#Собес
🤔 Когда используется ключевое слово "void" в Функции?

Ключевое слово void используется в языке С для обозначения того, что функция не возвращает значения. Оно ставится в заголовке функции, если не предполагается возвращать никакие данные.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤡1
#ЛитКод
Задача: 364. Nested List Weight Sum II

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

Глубина целого числа — это количество списков, внутри которых оно находится. Например, вложенный список [1,[2,2],[[3],2],1] имеет значение каждого целого числа, установленное равным его глубине. Пусть maxDepth будет максимальной глубиной любого целого числа.
Вес целого числа определяется как maxDepth - (глубина целого числа) + 1.

Верните сумму каждого целого числа в nestedList, умноженную на его вес.

Пример:
Input: nestedList = [[1,1],2,[1,1]]
Output: 8
Explanation: Four 1's with a weight of 1, one 2 with a weight of 2.
1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8


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

1⃣Инициализировать первый уровень BFS-дерева, добавив все элементы из входного nestedList в очередь.

2⃣Для каждого уровня извлекать передний элемент из очереди. Если это список, то добавить его элементы в очередь. В противном случае обновить значения sumOfElements, maxDepth и sumOfProducts.

3⃣Когда очередь станет пустой, вернуть значение (maxDepth + 1) * sumOfElements - sumOfProducts.

😎 Решение:
#include <vector>
#include <queue>
using namespace std;

class NestedInteger {
public:
bool isInteger() const;
int getInteger() const;
const vector<NestedInteger> &getList() const;
};

class Solution {
public:
int depthSumInverse(vector<NestedInteger>& nestedList) {
queue<NestedInteger> q;
for (auto& ni : nestedList) q.push(ni);

int depth = 1, maxDepth = 0, sumOfElements = 0, sumOfProducts = 0;

while (!q.empty()) {
int size = q.size();
maxDepth = max(maxDepth, depth);

for (int i = 0; i < size; ++i) {
NestedInteger nested = q.front();
q.pop();

if (nested.isInteger()) {
int value = nested.getInteger();
sumOfElements += value;
sumOfProducts += value * depth;
} else {
for (auto& ni : nested.getList()) q.push(ni);
}
}
depth++;
}
return (maxDepth + 1) * sumOfElements - sumOfProducts;
}
};


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤬 Чувак критикует инструменты сборки (build tools) для C/C++.

Он говорит, что C и C++ — это мощные языки, но несмотря на это, разработчики не могут эффективно использовать их для организации процесса сборки. Вместо этого они часто прибегают к Python (который он называет "интерпретируемым игрушечным языком"), что, только усложняет процесс.

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#видео
🤓 Закон Линуса о написании читаемого кода

Видео объясняет лучшие практики написания читаемого кода: предпочтение 8-символьным отступам, избегание излишней вложенности, правильное разбиение длинных строк (особенно логов), соотношение длины функции к её сложности и необходимость писать код, понятный без комментариев, вместо объяснения его работы в них.
📱 Смотреть видео

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

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

👉Новости 👉Платформа
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