🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Forwarded from Библиотека задач по C++ | тесты, код, задания
Алгоритм includes
Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
😱🤓 Неожиданное взаимодействие предсказания ветвлений и подсистем памяти
Статья посвящена оптимизации подсистем памяти.
В ней про взаимодействие механизма предсказания ветвлений с подсистемой памяти.
Схема предсказания переходов (ветвлений) является частью многих современных процессоров и используется для ускорения вычислений, когда у процессора недостаточно данных для продолжения работы. По сути, согласно ей процессор пытается спрогнозировать результат выполнения условной ветки кода до его фактического вычисления. Это событие называется спекуляцией в отношении результата ветвления, и последующие инструкции выполняются спекулятивно, то есть в случае ошибочного прогноза их результаты будут отменены.
Далее вас ждут примеры и подробный разбор
#гайд
Статья посвящена оптимизации подсистем памяти.
В ней про взаимодействие механизма предсказания ветвлений с подсистемой памяти.
Схема предсказания переходов (ветвлений) является частью многих современных процессоров и используется для ускорения вычислений, когда у процессора недостаточно данных для продолжения работы. По сути, согласно ей процессор пытается спрогнозировать результат выполнения условной ветки кода до его фактического вычисления. Это событие называется спекуляцией в отношении результата ветвления, и последующие инструкции выполняются спекулятивно, то есть в случае ошибочного прогноза их результаты будут отменены.
Далее вас ждут примеры и подробный разбор
#гайд
std::byte
std::byte — это тип данных, введенный в стандарт C++17. Он представляет собой один байт, то есть 8 бит. std::byte не является ни типом символа, ни типом числа. Он предназначен для представления байтов в памяти, независимо от того, используются они для хранения символов, чисел или чего-либо еще.
std::byte может использоваться в следующих случаях:
🔹 Для доступа к памяти, занимаемой другими объектами.
🔹 Для работы с низкоуровневыми функциями, такими как чтение и запись в порты ввода-вывода.
🔹 Для реализации собственных типов данных, которые должны хранить байты.
std::byte — это тип данных, введенный в стандарт C++17. Он представляет собой один байт, то есть 8 бит. std::byte не является ни типом символа, ни типом числа. Он предназначен для представления байтов в памяти, независимо от того, используются они для хранения символов, чисел или чего-либо еще.
std::byte может использоваться в следующих случаях:
🔹 Для доступа к памяти, занимаемой другими объектами.
🔹 Для работы с низкоуровневыми функциями, такими как чтение и запись в порты ввода-вывода.
🔹 Для реализации собственных типов данных, которые должны хранить байты.
Ответ: 2^32 - 25, то есть 4294967271.
Объяснение: вычитание имеет бОльший приоритет и выполнится раньше, чем вывод на экран.
25u означает unsigned int, вместимость этого типа от 0 до 2^32-1.
50 приводится к типу левого аргумента, и становится тоже unsigned int. При вычитании не может получиться отрицательное число, а так как беззнаковые типы "свёрнуты в кольцо", то -25 в unsigned int будет равно 2^32 - 25.
Объяснение: вычитание имеет бОльший приоритет и выполнится раньше, чем вывод на экран.
25u означает unsigned int, вместимость этого типа от 0 до 2^32-1.
50 приводится к типу левого аргумента, и становится тоже unsigned int. При вычитании не может получиться отрицательное число, а так как беззнаковые типы "свёрнуты в кольцо", то -25 в unsigned int будет равно 2^32 - 25.
Forwarded from Библиотека задач по C++ | тесты, код, задания
Алгоритм gcd
Используется для нахождения НОД двух чисел. Он принимает два значения одного типа данных в качестве аргументов и возвращает их НОД.
Используется для нахождения НОД двух чисел. Он принимает два значения одного типа данных в качестве аргументов и возвращает их НОД.
🤔 Очередной #дайджест по С++
◽ Рассказы о SObjectizer — продолжение серии и работа с командами
◽ Создание deb-пакета для самых маленьких — из простого проекта с разделяемыми библиотеками
◽ Syrmia представила Autocheck — проект на базе LLVM/Clang для проверки кода C/C++ на соответствие стандарту AUTOSAR
◽ Объединение интервалов в C++ нового поколения — объедините все перекрывающиеся интервалы и верните массив неперекрывающихся интервалов, которые охватывают все интервалы во входных данных
◽ Что нам недодали в C++ — крик души и требования о выкупе
◽ Рассказы о SObjectizer — продолжение серии и работа с командами
◽ Создание deb-пакета для самых маленьких — из простого проекта с разделяемыми библиотеками
◽ Syrmia представила Autocheck — проект на базе LLVM/Clang для проверки кода C/C++ на соответствие стандарту AUTOSAR
◽ Объединение интервалов в C++ нового поколения — объедините все перекрывающиеся интервалы и верните массив неперекрывающихся интервалов, которые охватывают все интервалы во входных данных
◽ Что нам недодали в C++ — крик души и требования о выкупе
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что делает std::string::at()?
std::string::at() — это функция, предоставляемая классом std::string для доступа к отдельным символам в строке. Она принимает индекс в качестве аргумента и возвращает символ в указанной позиции.
Функция at() выполняет проверку границы (boundary check), что означает, что она проверяет, находится ли переданный индекс в пределах допустимых значений для строки. Если индекс находится вне диапазона, генерируется исключение std::out_of_range. Это отличается от оператора [], который не выполняет такую проверку.
std::string::at() — это функция, предоставляемая классом std::string для доступа к отдельным символам в строке. Она принимает индекс в качестве аргумента и возвращает символ в указанной позиции.
Функция at() выполняет проверку границы (boundary check), что означает, что она проверяет, находится ли переданный индекс в пределах допустимых значений для строки. Если индекс находится вне диапазона, генерируется исключение std::out_of_range. Это отличается от оператора [], который не выполняет такую проверку.
🎥 Что спросить у работодателя на IT интервью
Чек-лист вопросов, чтобы не забыть спросить о чем-то своего будущего работодателя.
00:22 — Какие цели у команды / проекта / компании
00:39 — Что сделали интересного за несколько лет
01:05 — Какие у меня будут цели и задачи
01:30 — Какой размер и состав команды
01:57 — Какие языки и технологии используются
02:08 — Как устроены процессы в команде
02:33 — Что с кодом
02:53 — Какие у меня будут перспективы роста
03:04 — Какие сейчас есть проблемы
03:28 — Почему ищите человека на эту вакансию
Чек-лист вопросов, чтобы не забыть спросить о чем-то своего будущего работодателя.
00:22 — Какие цели у команды / проекта / компании
00:39 — Что сделали интересного за несколько лет
01:05 — Какие у меня будут цели и задачи
01:30 — Какой размер и состав команды
01:57 — Какие языки и технологии используются
02:08 — Как устроены процессы в команде
02:33 — Что с кодом
02:53 — Какие у меня будут перспективы роста
03:04 — Какие сейчас есть проблемы
03:28 — Почему ищите человека на эту вакансию
Forwarded from Библиотека задач по C++ | тесты, код, задания
Какая разница между структурой и классом?
Главное отличие заключается в том, что структуры по умолчанию имеют public доступ к своим полям, в то время как классы по умолчанию имеют private доступ.
— Структуры обычно используются для простых объектных типов данных, в то время как классы — для более сложных объектов.
— Структуры копируются по значению, а классы — по ссылке. Это означает, что при копировании структуры создается новый объект, а при копировании класса копируется указатель на объект.
— Структуры не поддерживают наследование, в отличие от классов.
В целом, структуры чаще используются для простых данных, а классы — для представления более сложных сущностей и их взаимодействия.
Выбор между ними зависит от конкретной задачи и требований к программе.
Главное отличие заключается в том, что структуры по умолчанию имеют public доступ к своим полям, в то время как классы по умолчанию имеют private доступ.
— Структуры обычно используются для простых объектных типов данных, в то время как классы — для более сложных объектов.
— Структуры копируются по значению, а классы — по ссылке. Это означает, что при копировании структуры создается новый объект, а при копировании класса копируется указатель на объект.
— Структуры не поддерживают наследование, в отличие от классов.
В целом, структуры чаще используются для простых данных, а классы — для представления более сложных сущностей и их взаимодействия.
Выбор между ними зависит от конкретной задачи и требований к программе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по C++ | тесты, код, задания
std::find_if
std::find_if — это стандартный алгоритм, предоставляемый библиотекой . Этот алгоритм предназначен для поиска первого элемента в заданном диапазоне, который удовлетворяет заданному условию, определенному предикатом.
Вот общий формат std::find_if:
#include
template
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p);
first и last представляют диапазон элементов для поиска. first указывает на начало диапазона, а last указывает за его пределы.
p — это унарный предикат, то есть функция, принимающая один аргумент и возвращающая true, если элемент удовлетворяет условию, и false в противном случае.
std::find_if — это стандартный алгоритм, предоставляемый библиотекой . Этот алгоритм предназначен для поиска первого элемента в заданном диапазоне, который удовлетворяет заданному условию, определенному предикатом.
Вот общий формат std::find_if:
#include
template
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p);
first и last представляют диапазон элементов для поиска. first указывает на начало диапазона, а last указывает за его пределы.
p — это унарный предикат, то есть функция, принимающая один аргумент и возвращающая true, если элемент удовлетворяет условию, и false в противном случае.
🤔 Очередной #дайджест по С++
⏬ Итоги развития экосистемы C++ в 2023 году — рост C++20, широкое внедрение инструментов на базе Clang, ИИ завоевывает доверие разработчиков и многое другое
⏬ Анализ приложений на C++ для оптимизации производительности — введение в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor
⏬ Как я поднял свой сервер без возможности выставить для него статический IP адрес — как обойти провайдерский dhcp с помощью бота и прочие развлечения
⏬ Dependency Injection контейнеры .NET, допускающие полиморфное поведение — когда при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения
⏬ Расширяемая архитектура RISC-V и Syntacore SW Tools — знакомство с открытой расширяемой архитектурой RISC-V на примере ядер Syntacore и с особенностями оптимизации и разработки программ под RISC-V
⏬ Итоги развития экосистемы C++ в 2023 году — рост C++20, широкое внедрение инструментов на базе Clang, ИИ завоевывает доверие разработчиков и многое другое
⏬ Анализ приложений на C++ для оптимизации производительности — введение в оптимизацию производительности приложений на C++ с помощью таких инструментов, как Intel VTune Profiler и Intel Advisor
⏬ Как я поднял свой сервер без возможности выставить для него статический IP адрес — как обойти провайдерский dhcp с помощью бота и прочие развлечения
⏬ Dependency Injection контейнеры .NET, допускающие полиморфное поведение — когда при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения
⏬ Расширяемая архитектура RISC-V и Syntacore SW Tools — знакомство с открытой расширяемой архитектурой RISC-V на примере ядер Syntacore и с особенностями оптимизации и разработки программ под RISC-V
Какой оператор используется для определения члена класса вне определения класса?
Anonymous Quiz
14%
->
3%
>>
11%
.
73%
::
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Что такое SIMD?
SIMD (Single Instruction, Multiple Data) инструкции представляют собой набор команд и возможностей, предоставляемых аппаратным средством процессора, которые позволяют выполнять одну операцию над несколькими элементами данных одновременно.
Это используется для параллельной обработки данных и повышения производительности в различных приложениях, включая обработку изображений, звука, видео, математические вычисления и многие другие.
SIMD (Single Instruction, Multiple Data) инструкции представляют собой набор команд и возможностей, предоставляемых аппаратным средством процессора, которые позволяют выполнять одну операцию над несколькими элементами данных одновременно.
Это используется для параллельной обработки данных и повышения производительности в различных приложениях, включая обработку изображений, звука, видео, математические вычисления и многие другие.