#полезное
😇 В чем разница между передачей по значению и по ссылке?
При передаче по значению функция получает копию исходного параметра. Значение оригинального параметра остаётся неизменным после любых операций с этой копией внутри функции.
При передаче по константной ссылке функция получает ссылку на исходный параметр, но с пометкой const, поэтому изменить значение оригинального параметра нельзя. Без const изменение будет возможным.
👉 Новости 👉 База вопросов
При передаче по значению функция получает копию исходного параметра. Значение оригинального параметра остаётся неизменным после любых операций с этой копией внутри функции.
При передаче по константной ссылке функция получает ссылку на исходный параметр, но с пометкой const, поэтому изменить значение оригинального параметра нельзя. Без const изменение будет возможным.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Как восстановить удалённую ветку?
💬 Кратко:
Если ветка была удалена локально, её можно восстановить, используя команду
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Если ветка была удалена локально, её можно восстановить, используя команду
git reflog . Если ветка была удалена удалённо, можно восстановить еёс помощью git push origin ‹ branch_name›.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#статьи
😐 История структуры данных Trie
Если вы когда-либо пользовались автодополнением или проверкой орфографии, вы уже сталкивались с Trie — одной из самых эффективных структур данных для операций с префиксами.
Trie была впервые представлена в 1960 году в статье “TRIE memory” Эдварда Фредкина. Эта работа заложила основу для всех современных реализаций Trie, которые используются в поисковых системах, словарях и приложениях с автодополнением.
Читать статью
👉 Новости 👉 База вопросов
Если вы когда-либо пользовались автодополнением или проверкой орфографии, вы уже сталкивались с Trie — одной из самых эффективных структур данных для операций с префиксами.
Trie была впервые представлена в 1960 году в статье “TRIE memory” Эдварда Фредкина. Эта работа заложила основу для всех современных реализаций Trie, которые используются в поисковых системах, словарях и приложениях с автодополнением.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 719. Find K-th Smallest Pair Distance
Расстояние между парой целых чисел a и b определяется как абсолютная разность между a и b. Учитывая целочисленный массив nums и целое число k, верните k-е наименьшее расстояние среди всех пар nums[i] и nums[j], где 0 <= i < j < nums.length.
Пример:
👨💻 Алгоритм:
1⃣ Отсортируйте массив nums.
2⃣ Определите минимальное и максимальное возможные расстояния.
3⃣ Используйте бинарный поиск, чтобы найти k-е наименьшее расстояние, проверяя количество пар с расстоянием меньше или равно текущему среднему значению.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 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
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;
}Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 Что такое чисто виртуальная функция в C++?
💬 Кратко:
Чисто виртуальная функция - это функция, которая объявлена в базовом классе, но не имеет реализации. Любой класс, который наследует этот базовый класс, должен предоставить реализацию этой функции.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Чисто виртуальная функция - это функция, которая объявлена в базовом классе, но не имеет реализации. Любой класс, который наследует этот базовый класс, должен предоставить реализацию этой функции.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
🤯 Знаете ли вы, что компилятор может удалить ваш код?
Компиляторы C всегда стараются сделать ваш код максимально быстрым. Один из инструментов для этого называется Dead Code Elimination (удаление «мертвого кода»).
Если какая-то часть кода не влияет на наблюдаемое поведение, например, вывод через printf, ввод/вывод, изменение глобального состояния — компилятор пытается безопасно её удалить.
Рассмотрим пример на изображении: если вы никогда не используете sum позже, например, никогда не выводите его, компилятор понимает, что этот цикл бесполезен. Весь цикл будет удалён.
В результате бинарник может работать значительно быстрее. Но если вы добавите printf("%d\n", sum);, компилятор сохранит этот цикл, так как он влияет на наблюдаемое поведение. Это также правило As-If.
👉 Новости 👉 База вопросов
Компиляторы C всегда стараются сделать ваш код максимально быстрым. Один из инструментов для этого называется Dead Code Elimination (удаление «мертвого кода»).
Если какая-то часть кода не влияет на наблюдаемое поведение, например, вывод через printf, ввод/вывод, изменение глобального состояния — компилятор пытается безопасно её удалить.
Рассмотрим пример на изображении: если вы никогда не используете sum позже, например, никогда не выводите его, компилятор понимает, что этот цикл бесполезен. Весь цикл будет удалён.
В результате бинарник может работать значительно быстрее. Но если вы добавите printf("%d\n", sum);, компилятор сохранит этот цикл, так как он влияет на наблюдаемое поведение. Это также правило As-If.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤯1
Разработчик за день написал свой аллокатор памяти на C++20 с heap-буфером, first-fit, сплиттингом и коалесингом блоков, безопасными проверками и отладочным дампом, чтобы на практике разобраться, как работают ptmalloc и jemalloc
https://github.com/Abhisheklearn12/custom-memory-allocator-cpp
👉 Новости 👉 База вопросов
https://github.com/Abhisheklearn12/custom-memory-allocator-cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Симуляторы помогают заглянуть «под капот» микропроцессорной архитектуры; этот конкретно хорошо показывает распределение тактов CPU.
https://creatorsim.github.io/creator/
👉 Новости 👉 База вопросов
https://creatorsim.github.io/creator/
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Что такое git reflog?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
git reflog показывает историю всех перемещений HEAD, включая коммиты, слияния и переключения веток. Эта команда полезна для восстановления потерянных коммитов или веток.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Мини HTTP-сервер на C++ с использованием Boost.Asio:
🟠 Принимает TCP-подключения
🟠 Читает HTTP-запросы
🟠 Отдаёт файлы из папки /www
🟠 Поддерживает разные типы контента (html, css, js)
https://github.com/dexter-xD/http-server-cpp
👉 Новости 👉 База вопросов
https://github.com/dexter-xD/http-server-cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
#полезное
🥱 Минималистская библиотека для парсинга JSON
sj.h — это компактная библиотека для парсинга JSON на C, состоящая всего из ~150 строк кода. Она не использует выделение памяти и предоставляет сообщения об ошибках с указанием местоположения. Библиотека не включает парсинг чисел и строк, позволяя разработчикам самостоятельно обрабатывать эти аспекты.
Основные моменты:
🟠 Минимальный код и нулевое выделение памяти
🟠 Удобные сообщения об ошибках
🟠 Гибкость в обработке чисел и строк
🟠 Легко интегрируется в существующие проекты
GitHub
👉 Новости 👉 База вопросов
sj.h — это компактная библиотека для парсинга JSON на C, состоящая всего из ~150 строк кода. Она не использует выделение памяти и предоставляет сообщения об ошибках с указанием местоположения. Библиотека не включает парсинг чисел и строк, позволяя разработчикам самостоятельно обрабатывать эти аспекты.
Основные моменты:
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Заметки по C++ для программирования с Windows API (Win32)
https://caiorss.github.io/C-Cpp-Notes/WindowsAPI-cpp.html
👉 Новости 👉 База вопросов
https://caiorss.github.io/C-Cpp-Notes/WindowsAPI-cpp.html
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Перечислите команды для удаления ветки git
💬 Кратко:
Для удаления локальной ветки:
Если ветка содержит незавершённые изменения:
Для удаления удалённой ветки:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для удаления локальной ветки:
git branch -d ‹ branch_name>
Если ветка содержит незавершённые изменения:
git branch -D ‹ branch_name>
Для удаления удалённой ветки:
git push origin --delete ‹branch_name>
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😵 Ретро-игра «боковой скролл кооперативный beat 'em up», написанная на C с использованием raylib. Построена с помощью Grok-4-Fast-Reasoning, отличный движок.
Репозиторий с встроенным клон-репозиторием raylib
👉 Новости 👉 База вопросов
Репозиторий с встроенным клон-репозиторием raylib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #git
🤔 Что делает команда git stash?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Команда
git stash сохраняет текущие незавершённые изменения в специальное место (стек), чтобы вы могли переключиться на другую ветку или выполнить другие действия. Эти изменения можно позже восстановить с ПОМОЩЬЮ git stash apply или git stash pop .📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #loop #for #while
🤔 Что такое цикл (loop) в C?
💬 Кратко:
Цикл в C — это конструкция, позволяющая повторять выполнение кода, пока выполняется заданное условие. В C есть три основных типа циклов:
-
-
-
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое цикл (loop) в C?
💬 Кратко:
Цикл в C — это конструкция, позволяющая повторять выполнение кода, пока выполняется заданное условие. В C есть три основных типа циклов:
-
for — используется, когда известно количество итераций.-
while — выполняется, пока условие истинно.-
do while — выполняется хотя бы один раз, затем проверяет условие.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1👍1
#Собес #git_status
🤔 Что делает команда git status?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает команда git status?
💬 Кратко:
Команда
git status показывает текущее состояние репозитория. Она отображает информацию о файлах, которые были изменены, добавлены в индекс или остаются незамеченными. Это помогает понять, какие шаги нужно выполнить дальше.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1
#Собес #compiler #machine_code #gcc
🤔 Что такое компилятор (compiler) в C?
💬 Кратко:
Компилятор — это программа, которая переводит исходный код на языке C в машинный код (исполняемый файл). Он выполняет лексический, синтаксический и семантический анализ, а затем оптимизирует код перед генерацией машинных инструкций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое компилятор (compiler) в C?
💬 Кратко:
Компилятор — это программа, которая переводит исходный код на языке C в машинный код (исполняемый файл). Он выполняет лексический, синтаксический и семантический анализ, а затем оптимизирует код перед генерацией машинных инструкций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #dangling_pointer #memory_leak #free
🤔 Что такое висячий указатель (dangling pointer) в C?
💬 Кратко:
Висячий указатель — это указатель, который указывает на освобождённую или несуществующую память. Использование такого указателя может привести к неопределённому поведению.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое висячий указатель (dangling pointer) в C?
💬 Кратко:
Висячий указатель — это указатель, который указывает на освобождённую или несуществующую память. Использование такого указателя может привести к неопределённому поведению.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔥2