TGViewer
Channel Public Channel
C/C++ Development | YeaHub

C/C++ Development | YeaHub

@yeahub_c_development

Теория, подготовка к интервью и курсы для C/C++ разработчиков

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

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

Для связи: @ruslan_kuyanets
Subscribers
742
Photos
281
Videos
56
Links
549

Showing posts older than #385 · Back to latest

Older Posts 16 shown
Post #384 379
#полезное
🥱 Минималистская библиотека для парсинга JSON

sj.h — это компактная библиотека для парсинга JSON на C, состоящая всего из ~150 строк кода. Она не использует выделение памяти и предоставляет сообщения об ошибках с указанием местоположения. Библиотека не включает парсинг чисел и строк, позволяя разработчикам самостоятельно обрабатывать эти аспекты.

Основные моменты:
🟠 Минимальный код и нулевое выделение памяти
🟠 Удобные сообщения об ошибках
🟠 Гибкость в обработке чисел и строк
🟠 Легко интегрируется в существующие проекты
GitHub

👉Новости 👉База вопросов
  • ❤ 1
Post #382 332
#полезное
😇 Мини HTTP-сервер на C++ с использованием Boost.Asio:

🟠 Принимает TCP-подключения
🟠 Читает HTTP-запросы
🟠 Отдаёт файлы из папки /www
🟠 Поддерживает разные типы контента (html, css, js)

https://github.com/dexter-xD/http-server-cpp

👉Новости 👉База вопросов
  • ❤ 1
  • 🔥 1
Post #381 304
#Собес #git
🤔 Что такое git reflog?

💬 Кратко:
git reflog показывает историю всех перемещений HEAD, включая коммиты, слияния и переключения веток. Эта команда полезна для восстановления потерянных коммитов или веток.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Post #379 348
Разработчик за день написал свой аллокатор памяти на C++20 с heap-буфером, first-fit, сплиттингом и коалесингом блоков, безопасными проверками и отладочным дампом, чтобы на практике разобраться, как работают ptmalloc и jemalloc

https://github.com/Abhisheklearn12/custom-memory-allocator-cpp

👉Новости 👉База вопросов
Post #378 329
#полезное
🤯 Знаете ли вы, что компилятор может удалить ваш код?

Компиляторы C всегда стараются сделать ваш код максимально быстрым. Один из инструментов для этого называется Dead Code Elimination (удаление «мертвого кода»).

Если какая-то часть кода не влияет на наблюдаемое поведение, например, вывод через printf, ввод/вывод, изменение глобального состояния — компилятор пытается безопасно её удалить.

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

В результате бинарник может работать значительно быстрее. Но если вы добавите printf("%d\n", sum);, компилятор сохранит этот цикл, так как он влияет на наблюдаемое поведение. Это также правило As-If.

👉Новости 👉База вопросов
  • 👍 2
  • 🤯 1
Post #377 288
#Собес #Cplus
🤔 Что такое чисто виртуальная функция в C++?

💬 Кратко:
Чисто виртуальная функция - это функция, которая объявлена в базовом классе, но не имеет реализации. Любой класс, который наследует этот базовый класс, должен предоставить реализацию этой функции.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
YeaHub YeaHub — тренажер собеседований по IT 5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
Post #375 307
#ЛитКод
Задача: 719. Find K-th Smallest Pair Distance

Расстояние между парой целых чисел a и b определяется как абсолютная разность между a и b. Учитывая целочисленный массив nums и целое число k, верните k-е наименьшее расстояние среди всех пар nums[i] и nums[j], где 0 <= i < j < nums.length.

Пример:
Input: nums = [1,3,1], k = 1
Output: 0


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

1⃣Отсортируйте массив nums.

2⃣Определите минимальное и максимальное возможные расстояния.

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

😎 Решение:
int countPairs(const vector<int>& nums, int mid) {
int count = 0, j = 0;
for (int i = 0; i < nums.size(); i++) {
while (j < nums.size() && nums[j] - nums[i] <= mid) {
j++;
}
count += j - i - 1;
}
return count;
}

int smallestDistancePair(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int left = 0, right = nums.back() - nums.front();
while (left < right) {
int mid = (left + right) / 2;
if (countPairs(nums, mid) < k) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
}


👉Новости 👉База вопросов
Post #374 298
#статьи
😐 История структуры данных Trie

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

Trie была впервые представлена в 1960 году в статье “TRIE memory” Эдварда Фредкина. Эта работа заложила основу для всех современных реализаций Trie, которые используются в поисковых системах, словарях и приложениях с автодополнением.
Читать статью

👉Новости 👉База вопросов
Post #373 275
#Собес #git
🤔 Как восстановить удалённую ветку?

💬 Кратко:
Если ветка была удалена локально, её можно восстановить, используя команду git reflog . Если ветка была удалена удалённо, можно восстановить еёс помощью git push origin ‹ branch_name›.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Post #372 304
#полезное
😇 В чем разница между передачей по значению и по ссылке?

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

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

👉Новости 👉База вопросов
Post #371 264
#полезное
😊 std::clamp

std::clamp ограничивает значение в пределах заданного диапазона. Это полезно для валидации чисел, нормализации данных и защиты от выхода за границы.

👉Новости 👉База вопросов
  • 🤝 1
Post #367 370
Это, пожалуй, один из лучших ресурсов по GPU-программированию, что я находил — GPU Glossary от Modal. В нём сложные концепции разобраны с понятными визуализациями и объяснениями: от архитектуры CUDA до Tensor Cores и CTA.
modal.com/gpu-glossary

👉Новости 👉База вопросов
Post #366 275
#Собес #Cplus
🤔 Чем векторы в С++ отличаются от массивов?

💬 Кратко:
Вектора в С++ — это динамические структуры данных, которые могут изменять свой размер, в то время как массивы имеют фиксированный размер, определяемый при их создании. |

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
YeaHub YeaHub — тренажер собеседований по IT 5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
Post #365 272
#полезное
❤️‍🔥 Простая реализация паттерна Singleton на C.

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

👉Новости 👉База вопросов
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →