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
#Собес #mongoDB
🤔 Что такое MongoDB и чем она отличается от традиционных реляционных баз данных?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
👨‍💻 Язык C в операционных системах

C — идеален для операционок, потому что он ближе всех к железу

Вот как это работает:

1⃣ Пишем исходный код на C
2⃣ Компилятор превращает его в ассемблерный код
3⃣ Ассемблер собирает машинный код —> двоичный, понятный процессору
4⃣ ЦП начинает выполнение инструкций
5⃣ Через функции ОС идёт вызов системных ресурсов
6⃣ В итоге —> взаимодействие с "железом"

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#полезное
😊 Это не баг, а фича

Всегда добавляй эту строку в конец своего сообщения коммита — и сам Линус Торвальдс придёт в твой проект и сделает вклад

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😴 Знаете ли вы, как на самом деле работает return ?

Это видео объясняет, как работает return в функциях, но не на уровне кода типа return x, а на уровне того, что реально делает процессор
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#Собес #mongoDB
🤔 Какие модели данных существуют в MongoDB?

MongoDB поддерживает две основные модели данных: вложенные (embedded) и нормализованные (normalized). Вложенные модели объединяют данные в одном документе, а нормализованные используют ссылки между документами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
📞 Работа семафора

Это механизм синхронизации, который управляет доступом к общему ресурсу

Представь, что у тебя есть ресурс, к которому нельзя пускать всех одновременно. Например 7 мест в кафешке. Если все заняты — остальные ждут.

Вот этим и занимается семафор —> пропускает только ограниченное число потоков (или задач) к ресурсу
Поток вызывает wait —> заходит
Сделал дело — release —> освободил место

Семафор защищает ресурсы от одновременного доступа. Без блокировок, просто и понятно

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Хочешь понять, как реально устроена база данных на низком уровне?

sqlite-internal.pages.dev — это интерактивный визуализатор, который показывает внутренности SQLite-файла:

—> B-деревья
—> Заголовки страниц
—> Записи, varint, указатели и многое другое

Все по официальной спецификации формата файлов SQLite, прямо в браузере и без загрузки данных на сервер

Работа над ним еще не закончена, но автор выпустил его раньше, чтобы собрать отзывы

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#ЛитКод
Задача: 774. Minimize Max Distance to Gas Station

Вам дан массив целых чисел stations, который представляет позиции автозаправочных станций на оси x. Вам также дано целое число k.

Вы должны добавить k новых автозаправочных станций. Вы можете добавлять станции в любое место на оси x, необязательно в целочисленную позицию.

Определим penalty() как максимальное расстояние между соседними автозаправочными станциями после добавления k новых станций.

Верните наименьшее возможное значение penalty(). Ответы, отличающиеся от фактического ответа не более чем на 10^-6, будут приняты.

Пример:
Input: stations = [1,2,3,4,5,6,7,8,9,10], k = 9
Output: 0.50000


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

1⃣Пусть i-й интервал равен deltas[i] = stations[i+1] - stations[i]. Мы хотим найти dp[n+1][k] как рекурсию. Мы можем поставить x автозаправочных станций в интервал n+1 с наилучшим расстоянием deltas[n+1] / (x+1), затем оставшиеся интервалы можно решить с ответом dp[n][k-x]. Ответ — это минимум среди всех x.

2⃣Из этой рекурсии мы можем разработать решение с использованием динамического программирования. Инициализируем двумерный массив dp, где dp[i][j] будет хранить минимальное возможное значение penalty при добавлении j автозаправочных станций на первые i интервалов.

3⃣Заполняем dp таблицу начиная с базового случая, когда нет добавленных станций. Затем для каждого интервала и количества добавленных станций вычисляем минимальное значение penalty, используя вышеописанную рекурсию. Итоговый ответ будет находиться в dp[n][k], где n — количество интервалов, а k — количество добавляемых станций.

😎 Решение:
class Solution {
public:
double minmaxGasDist(vector<int>& stations, int K) {
int N = stations.size();
vector<double> deltas(N-1);
for (int i = 0; i < N-1; ++i)
deltas[i] = stations[i+1] - stations[i];

vector<vector<double>> dp(N-1, vector<double>(K+1));
for (int i = 0; i <= K; ++i)
dp[0][i] = deltas[0] / (i+1);

for (int p = 1; p < N-1; ++p)
for (int k = 0; k <= K; ++k) {
double bns = numeric_limits<double>::max();
for (int x = 0; x <= k; ++x)
bns = min(bns, max(deltas[p] / (x+1), dp[p-1][k-x]));
dp[p][k] = bns;
}

return dp[N-2][K];
}
};


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #mongoDB
🤔 Какие языки программирования поддерживает MongoDB?

MongoDB официально поддерживает языки С, C++, C#, Java, Node.js, Perl, PHP, ython, Ruby, Scala, Go и Erlang. Также есть драйверы, созданные сообществом для других языков.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😊 Указатели на функции в C

Указатели на функции позволяют вызывать функции динамически и являются ключевым инструментом для реализации механизмов обратных вызовов (callback). Это повышает гибкость и модульность программ на C

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🤯 Большинство разработчиков не знают, что начиная с C99 можно инициализировать целые массивы в одну строку с помощью синтаксиса диапазонов

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
4
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😐 Если ты интересуешься звуком в старых DOS-играх — зацени AdLib Editor от FenixFox Studios

Это полноценный FM-синтез редактор под DOS, с которым можно:

🟠редактировать .INS,
.SBI и .S3M файлы;
🟠настраивать огибающие ADSR, тремоло, вибрато, формы волн и обратную связь;
🟠работать с секвенсором прямо в терминале (v1.1);
🟠слушать звук в реальном времени.

Работает прямо в DOS или через DOSBox (уже в комплекте)

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

Индексы - это структуры, которые упрощают и ускоряют поиск данных в оллекциях MongoDB. Они позволяют базе данных эффективно находить записи, не сканируя все документы в коллекции.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😬 Хотите узнать, как работают SHELL?

Нашли для вас это подробное руководство, котороая покажет вам, как написать Shell с нуля на языке C!

Материал не новый, но все что описано в нем актуально и сегодня. Наслаждайтесь!
Читать

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

SQLiteCpp — это тонкая обертка вокруг SQLite, одной из самых популярных легковесных реляционных баз данных. Библиотека предоставляет удобный и безопасный интерфейс для работы с SQLite в C++, облегчая взаимодействие с базами данных.

🟠 Если вам нужно встроить простую, но мощную базу данных в ваше C++ приложение, SQLiteCpp — это то, что вам нужно.
Ссылочка на доку

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#полезное
😊 Sourcetrail — это инструмент божественного уровня с графическим интерфейсом и открытым исходным кодом для навигации и понимания исходного кода на C, C++, Java и Python

Собирает граф зависимостей, показывает кто кого вызывает, кто где объявлен, и всё это в наглядной визуалке.

Раньше был коммерческим, теперь полностью открыт

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Расскажите о структуре Objectld

Objectld - это уникальный идентификатор для документов в MongoDB. Он состоит из отметки времени, идентификатора машины, идентификатора процесса и инкрементного счетчика.

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