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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
🤯 std::experimental
::sample


std::experimental::sample (C++17) позволяет случайным образом выбрать элементы из контейнера без необходимости перемешивания всей последовательности. Это удобно для случайной выборки данных в эффективном режиме.
Документация

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😇 Работать с файлами в C — это основа, без которой не обойтись, если хочешь сохранять данные.

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

Тут всё просто:

fopen() — открытие файла в нужном режиме

fwrite() / fprintf() — запись данных

fread() / fscanf() — чтение данных

fclose() — закрытие файла

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 8 алгоритмов балансировки нагрузки, которые стоит знать

1⃣Round Robin – запросы распределяются равномерно между серверами по очереди.

2⃣Least Connections – запрос направляется на сервер с наименьшим числом активных соединений.

3⃣Weighted Round Robin – серверам присваиваются веса, и запросы распределяются с учетом этих весов.

4⃣Weighted Least Connections – учитывается как число соединений, так и вес сервера.

5⃣IP Hash - запрос направляется на сервер в зависимости от хэша IP-адреса клиента.

6⃣Least Response Time – запрос идет на сервер с наименьшим временем ответа.

7⃣Random – сервер выбирается случайным образом.

8⃣Least Bandwidth – запрос идет на сервер с наименьшей текущей загрузкой сети.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
🤓 Самый быстрый способ обнулить память

Перестаньте использовать циклы для очистки массивов — memset гораздо быстрее!

🟠Использует низкоуровневые инструкции процессора для массовых операций

🟠Оптимизируется компиляторами с помощью SIMD и векторизации

🟠Уменьшает накладные расходы циклов, улучшая производительность

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес
🤔 Что такое тип возвращаемого значения функции В С++?

Тип возвращаемого значения функции в С++ указывается перед её именем и определяет, какой тип данных функция будет возвращать. Это может быть любой тип данных, включая встроенные (например, int, float ) и пользовательские типы (например, классы).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 В языке C вы можете присваивать значение от void* к любому другому указателю, но не в C++.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
#полезное
🤯 std::destroy_at()

std::destroy_at() (C++17) вручную вызывает деструктор объекта без освобождения памяти. Это полезно при использовании нестандартных аллокаторов или ручном управлении памятью.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
👍 GLIM — это гибкая и расширяемая платформа для 3D картографирования на основе дальномерных данных!

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес
🤔 Как передаются аргументы функции в С++?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Проект — написание брандмауэра для Linux на C с нуля

В этом проекте по кибербезопасности вы изучите множество сетевых технологий, узнаете, как работает интернет-трафик, и научитесь использовать это в своем коде на C. Также вы освоите такие вещи, как сырые сокеты, режим прослушивания (promiscuous mode), netlink и UNIX-доменные сокеты.
📱 Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
😐 Утечки памяти и отладка с помощью Valgrind

Valgrind – это инструмент для отладки и профилирования, который помогает находить:

🟠Утечки памяти

🟠Неправильное использование выделенной памяти. Например, выход за границы массива

🟠Использование неинициализированных переменных

valgrind --leak-check=full ./my_program


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

Пример утечки и исправления


Утечка:
int *arr = malloc(10 * sizeof(int));


Освобождение памяти
int *arr = malloc(10 * sizeof(int)); 
free(arr);


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
😐 Книга "Practical Binary Analysis" от Денниса Андрисека — для тех, кто хочет залезть под капот бинарников и разобраться, как реально работает анализ исполняемых файлов на практике.

Это гайд по реверс-инжинирингу, анализу уязвимостей, и low-level хакингу, но через практику. С фокусом на бинарники, дизассемблирование, символьное исполнение, и даже немного эксплойтов. Всё с реальными примерами и кодом.
Ознакомиться

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🥺 Взаимодействие между процессами (IPC) в C

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

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

Основные методы IPC в C:

🟠Pipe — односторонняя передача данных между родственными процессами

🟠Message Queue - обмен структурированными сообщениями с управлением через очередь

🟠Shared Memory - самый быстрый способ — процессы используют общий участок памяти

🟠Socket - связь между процессами как на одной машине, так и по сети

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 487. Max Consecutive Ones II

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

Пример:
Input: nums = [1,0,1,1,0]
Output: 4
Explanation:
- If we flip the first zero, nums becomes [1,1,1,1,0] and we have 4 consecutive ones.
- If we flip the second zero, nums becomes [1,0,1,1,1] and we have 3 consecutive ones.
The max number of consecutive ones is 4.


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

1⃣Для каждого возможного начала последовательности в массиве nums начните считать количество нулей.

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

3⃣Продолжайте проверять все возможные последовательности в массиве, и верните максимальную длину последовательности единиц, удовлетворяющую условию.

😎 Решение:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
int longestSequence = 0;
for (int left = 0; left < nums.size(); ++left) {
int numZeroes = 0;
for (int right = left; right < nums.size(); ++right) {
if (nums[right] == 0) {
numZeroes++;
}
if (numZeroes <= 1) {
longestSequence = max(longestSequence, right - left + 1);
}
}
}
return longestSequence;
}
};


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
😊 Собери простой чат-сервер на C менее чем за 40 строк!

🟠Используя только сокеты и poll, ты можешь реализовать обмен сообщениями в реальном времени между терминалом и клиентом

🟠Отличный способ изучить TCP, мультиплексирование ввода-вывода и сетевое программирование в Unix.
Полное руководство тык

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #mongoDB
🤔 Что такое BSON в MongoDB?

BSON (Binary JSON) - это бинарный формат сериализации, используемый MongoDB для хранения документов. Он расширяет JSON, добавляя поддержку дополнительных типов данных, таких как Date, ObjectId, и бинарные данные, а также оптимизирует производительность операций

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

Набор интерактивных упражнений («паззлов») для обучения программированию под GPU с использованием CUDA.

Это целая серия задач, где требуется написать небольшие CUDA-ядра (ядра GPU), реализующие операции вроде сложения с константой (map), поэлементного суммирования (zip), работы с блоками и потоками, свёртки, матричного умножения и других параллельных алгоритмов.

Основная цель репозитория – дать начинающим возможность непосредственно попрактиковаться в программировании под GPU, без необходимости погружаться в сложную документацию.

Для удобства рекомендуется запускать задания в Google Colab с включённым режимом GPU.

Репозиторий лицензирован по MIT, имеет высокую популярность (более 10 тыс звёзд) и является частью серии обучающих проектов (наряду с Tensor Puzzles, Autodiff Puzzles, Triton Puzzles и другими).

А здесь реализация задач на C++
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1