#полезное
😊 std::unordered_map::
emplace_hint()
Документация
👉 Новости 👉 База вопросов
emplace_hint()
std::unordered_map::emplace_hint() позволяет вставлять элементы в хеш-таблицу с подсказкой для оптимизации. Это особенно полезно, если известно, куда примерно должен встать новый элемент, ускоряя операцию вставки.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😇 Продвинутый семинар по C++
Все видеоролики очень насыщенные, с очень хорошим содержанием.
✅ Высокопроизводительные вычисления (HPC) на C++
✅ Инфраструктура C++ и текстовые ресурсы
✅ RAII, владение ресурсами, указатели и руководства по ним
✅ Обобщённое программирование (Generic Programming), часть 1
✅ Функциональные и обобщённые утилиты программирования
и тд.
Источник
👉 Новости 👉 База вопросов
Все видеоролики очень насыщенные, с очень хорошим содержанием.
и тд.
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#статьи
🥺 CMake: Настройка проекта, подключение библиотек и мучения с Vulkan
Ознакомиться
👉 Новости 👉 База вопросов
Ознакомиться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое статическая переменная (static variable) в C?
Статическая переменная объявляется с ключевым словом
👉 Новости 👉 Платформа
Статическая переменная объявляется с ключевым словом
static и сохраняет своё значение между вызовами функции. В отличие от локальных переменных, она не уничтожается после выхода из области видимости.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥺 Хочешь передавать данные звуком без интернета и Bluetooth?
Проект ggwave позволяет кодировать и декодировать данные в звуковые волны, превращая любой динамик и микрофон в средство передачи информации!
🟠 Кодирует данные в неслышимые для человека звуковые сигналы
🟠 Декодирует их на принимающем устройстве
🟠 Работает на любых платформах
Попробуй тут
👉 Новости 👉 База вопросов
Проект ggwave позволяет кодировать и декодировать данные в звуковые волны, превращая любой динамик и микрофон в средство передачи информации!
Попробуй тут
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Шпаргалка по библиотеке fmt
Небольшая, но очень полезная шпаргалка, рассказывающая о возможных способах форматирования различных типов данных с помощью стандартной библиотеки fmt.
👉 Новости 👉 База вопросов
Небольшая, но очень полезная шпаргалка, рассказывающая о возможных способах форматирования различных типов данных с помощью стандартной библиотеки fmt.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Лови гайд по созданию операционной системы с нуля.
Автор — Tu Dung Nguyen — решил, что копаться в чужом коде и читать тысячу страниц Таненбаума — это скучно. Гораздо круче самому написать ОС!
Ты стартуешь с простого загрузчика, переводишь процессор в защищённый режим, пишешь драйверы и постепенно собираешь свой мини-операционник на ассемблере и C.
Ознакомьтесь тут
👉 Новости 👉 База вопросов
Автор — Tu Dung Nguyen — решил, что копаться в чужом коде и читать тысячу страниц Таненбаума — это скучно. Гораздо круче самому написать ОС!
Ты стартуешь с простого загрузчика, переводишь процессор в защищённый режим, пишешь драйверы и постепенно собираешь свой мини-операционник на ассемблере и C.
Ознакомьтесь тут
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое компилятор (compiler) в С?
Компилятор - это программа, которая переводит исходный код на языке С в машинный код (исполняемый файл). Он выполняет лексический. синтаксический и семантический анализ, а затем оптимизирует код перед генерацией машинных инструкций.
👉 Новости 👉 Платформа
Компилятор - это программа, которая переводит исходный код на языке С в машинный код (исполняемый файл). Он выполняет лексический. синтаксический и семантический анализ, а затем оптимизирует код перед генерацией машинных инструкций.
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 713. Subarray Product Less Than K
Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.
Пример:
👨💻 Алгоритм:
1⃣ Инициализируйте переменные для отслеживания текущего произведения и количества допустимых подмассивов. Используйте два указателя для границ подмассива.
2⃣ Перемещайте правый указатель по массиву и умножайте текущий элемент на текущее произведение. Если произведение становится больше или равно k, перемещайте левый указатель, уменьшая произведение до тех пор, пока оно снова не станет меньше k.
3⃣ Подсчитайте количество подмассивов с текущим правым указателем, добавив к общему количеству допустимых подмассивов разницу между правым и левым указателями.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 713. Subarray Product Less Than K
Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.
Пример:
Input: nums = [10,5,2,6], k = 100
Output: 8
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
if (k <= 1) return 0;
int product = 1, count = 0, left = 0;
for (int right = 0; right < nums.size(); right++) {
product *= nums[right];
while (product >= k) {
product /= nums[left];
left++;
}
count += right - left + 1;
}
return count;
}Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
👍 Указатели важны, потому что всё — это адрес!!!
Одна из самых фундаментальных идей/абстракций во всех компьютерных системах — это идея "памяти с отображением на устройства ввода-вывода" (Memory-mapped I/O)!
Memory-mapped I/O используется для того, чтобы процессор мог взаимодействовать с периферийными устройствами (такими как USB, SPI, таймеры и UART), а также с памятью, используя команды доступа к памяти (загрузка и сохранение данных).
В этом подходе аппаратным компонентам выделяются определённые области в адресном пространстве, и манипуляции с этими адресами позволяют выполнять различные операции или получать доступ к конкретным устройствам.
Например, если мы хотим отправить символ через оборудование UART, нам нужно просто записать этот символ в определённый адрес (на рисунке это адрес в диапазоне 0xA00–0xC1F), который соответствует UART...
Такие операции чтения и записи в память выполняются драйверами устройств.
P.S: Манипуляция на основе адресов — именно поэтому язык C идеально подходит для написания драйверов и низкоуровневого программного обеспечения.
👉 Новости 👉 База вопросов
Одна из самых фундаментальных идей/абстракций во всех компьютерных системах — это идея "памяти с отображением на устройства ввода-вывода" (Memory-mapped I/O)!
Memory-mapped I/O используется для того, чтобы процессор мог взаимодействовать с периферийными устройствами (такими как USB, SPI, таймеры и UART), а также с памятью, используя команды доступа к памяти (загрузка и сохранение данных).
В этом подходе аппаратным компонентам выделяются определённые области в адресном пространстве, и манипуляции с этими адресами позволяют выполнять различные операции или получать доступ к конкретным устройствам.
Например, если мы хотим отправить символ через оборудование UART, нам нужно просто записать этот символ в определённый адрес (на рисунке это адрес в диапазоне 0xA00–0xC1F), который соответствует UART...
Такие операции чтения и записи в память выполняются драйверами устройств.
P.S: Манипуляция на основе адресов — именно поэтому язык C идеально подходит для написания драйверов и низкоуровневого программного обеспечения.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 std::source_location
::current()
Документация
👉 Новости 👉 База вопросов
::current()
std::source_location::current() (C++20) позволяет получить информацию о месте вызова функции, включая имя файла, номер строки и название функции. Это удобно для логирования, отладки и трассировки кода.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое пространство имён (namespace) в С++?
Пространство имён в С++ — это способ группировки связанных элементов кода под одним именем. Оно помогает избежать конфликтов имён функций или переменных, используемых в разных частях программы или внешних библиотеках.
👉 Новости 👉 Платформа
Пространство имён в С++ — это способ группировки связанных элементов кода под одним именем. Оно помогает избежать конфликтов имён функций или переменных, используемых в разных частях программы или внешних библиотеках.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😊 level-ip
Это минималистичный стек IPv4/TCP/UDP, написанный на C, который можно разобрать по винтикам и понять, как устроены сети на низком уровне
Раньше, для этого приходилось либо читать гигабайты исходников Linux, либо писать всё с нуля.
Теперь просто берёшь level-ip, и у тебя в руках чистый, компактный стек, который легко модифицировать, изучать и даже встраивать в свои проекты.
👉 Новости 👉 База вопросов
Это минималистичный стек IPv4/TCP/UDP, написанный на C, который можно разобрать по винтикам и понять, как устроены сети на низком уровне
Раньше, для этого приходилось либо читать гигабайты исходников Linux, либо писать всё с нуля.
Теперь просто берёшь level-ip, и у тебя в руках чистый, компактный стек, который легко модифицировать, изучать и даже встраивать в свои проекты.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Нашёл тут курс по Game Engine
🟠 Game Engine hardCORE серии. Promo
🟠 Сборка C++ проектов. Препроцессинг.
🟠 Сборка C++ проектов. Компиляция. Ассемблер. Теория.
🟠 Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment.
🟠 Сборка C++ проектов. Linker. Forward declaration.
🟠 Сборка C++ проектов. Static/dynamic libraries. PCH. Unity (JUMBO) build.
Источник
👉 Новости 👉 База вопросов
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Примитивная модель процессора для программиста.
Так я представляю себе архитектуру процессора при написании кода на C или Assembly.
В подавляющем большинстве случаев эта модель оказывается достаточной и практичной.
🟠 Процессор состоит из АЛУ (арифметико-логического устройства), блока управления и файла регистров. Это базовые компоненты, обеспечивающие выполнение команд.
🟠 Я опираюсь на модель Load/Store, согласно которой все операции с памятью происходят через регистры: данные сначала загружаются в регистровый файл, затем модифицируются и только после этого записываются обратно в память.
🟠 Взаимодействие CPU с памятью и периферийными устройствами осуществляется через адресную и шину данных. Доступ к данным или управлению периферией возможен посредством обращения к соответствующим адресам.
👉 Новости 👉 База вопросов
Так я представляю себе архитектуру процессора при написании кода на C или Assembly.
В подавляющем большинстве случаев эта модель оказывается достаточной и практичной.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое перегрузка операторов в C++?
Перегрузка операторов в С++ позволяет операторам, таким как +, -, *, работать с пользовательскими типами данных. Это делает код более выразительным и позволяет применять стандартные операторы к объектам классов.
👉 Новости 👉 Платформа
Перегрузка операторов в С++ позволяет операторам, таким как +, -, *, работать с пользовательскими типами данных. Это делает код более выразительным и позволяет применять стандартные операторы к объектам классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😎 Reverse Engineering x86 & C
Если всегда хотел понять, как работает код под капотом, разбирать бинарники и дизассемблировать программы — это идеальный старт!
Что внутри:
🟠 Как компилятор превращает C-код в ассемблер
🟠 Основы x86: регистры, инструкции, стек, вызовы функций
🟠 Разбор бинарников, дизассемблирование, отладка в GDB
Статья разжёвывает сложные вещи простым языком, так что даже новичкам будет понятно!
👉 Новости 👉 База вопросов
Если всегда хотел понять, как работает код под капотом, разбирать бинарники и дизассемблировать программы — это идеальный старт!
Что внутри:
Статья разжёвывает сложные вещи простым языком, так что даже новичкам будет понятно!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Ripes — визуальный эмулятор процессора
Если хочешь разобраться, как работает процессор на низком уровне, загляни на Ripes
Это интерактивный эмулятор, который наглядно показывает выполнение инструкций, работу конвейера и кэша.
Можно шаг за шагом отслеживать, как команды проходят через стадии выборки, декодирования, исполнения, доступа к памяти и записи результатов.
👉 Новости 👉 База вопросов
Если хочешь разобраться, как работает процессор на низком уровне, загляни на Ripes
Это интерактивный эмулятор, который наглядно показывает выполнение инструкций, работу конвейера и кэша.
Можно шаг за шагом отслеживать, как команды проходят через стадии выборки, декодирования, исполнения, доступа к памяти и записи результатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
::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
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
😇 Работать с файлами в C — это основа, без которой не обойтись, если хочешь сохранять данные.
Работа с файлами в C позволяет создавать, открывать, читать, записывать и закрывать файлы с помощью таких функций, как
Тут всё просто:
👉 Новости 👉 База вопросов
Работа с файлами в C позволяет создавать, открывать, читать, записывать и закрывать файлы с помощью таких функций, как
fopen(), fclose(), fread(), fwrite() и fprintf(). Тут всё просто:
fopen() — открытие файла в нужном режимеfwrite() / fprintf() — запись данныхfread() / fscanf() — чтение данныхfclose() — закрытие файлаPlease open Telegram to view this post
VIEW IN TELEGRAM