en
Feedback
Senior C++ Developer

Senior C++ Developer

Open in Telegram

📈 Analytical overview of Telegram channel Senior C++ Developer

Channel Senior C++ Developer (@seniorcpp) in the Russian language segment is an active participant. Currently, the community unites 11 846 subscribers, ranking 10 582 in the Technologies & Applications category and 55 674 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 11 846 subscribers.

According to the latest data from 10 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -76 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 12.88%. Within the first 24 hours after publication, content typically collects 4.87% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 526 views. Within the first day, a publication typically gains 577 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
  • Thematic interests: Content is focused on key topics such as c++, контейнер, диапазон, git, true.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Изучаем C++. По вопросам сотрудничества: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba

Thanks to the high frequency of updates (latest data received on 11 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

11 846
Subscribers
No data24 hours
-167 days
-7630 days
Posts Archive
Видеоуроки по созданию игры на C++ Серия видео, в которой автор по шагам рассказывает, как написать свою игру на C++. Смотреть статью

#вопросы_с_собеседований Что выведет код сверху? Ответ: 10 99 40 99 В этой программе мы меняем местами определенные значения
#вопросы_с_собеседований Что выведет код сверху? Ответ: 10 99 40 99 В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.

🏆 Пройди тест на знание алгоритмов и структур данных и получи доступ к записям всех открытых (бонусных) уроков (41 видео) из
🏆 Пройди тест на знание алгоритмов и структур данных и получи доступ к записям всех открытых (бонусных) уроков (41 видео) из курса «Алгоритмы и структуры данных» от OTUS. Некоторые темы — просто 🔥 огонь! Например: - Трилогия «Создание словаря: 7 способов» - Дилогия «Визуальное сравнение пяти алгоритмов сортировок: Пузырьком, Вставкой, Шелла, Выбором и Пирамидальной» и многое другое ➡️ НАЧАТЬ ТЕСТИРОВАНИЕ Прямо сейчас переходи на сайт, чтобы посмотреть два последних открытых урока‼️без регистрации и оценить формат обучения. 📊 «Алгоритмы и структуры данных» — это большой курс для разработчиков, которые хотят улучшить качество своего кода и развивать карьеру. 📚 Для кого этот курс? - Для бэкенд- и фронтенд-разработчиков. - Для junior-программистов. 📅 Старт группы уже 31 июля 2024г. Доступна рассрочка на обучение. ⏰ Успейте записаться в группу по скидке 🎁15% до 28.07 включительно. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Узнаем размер файла с помощью C++ В этом примере мы открываем файл example.txt с помощью ifstream, перемещаем указатель на ко
Узнаем размер файла с помощью C++ В этом примере мы открываем файл example.txt с помощью ifstream, перемещаем указатель на конец файла с помощью функции seekg, а затем получаем текущую позицию (размер файла) с помощью функции tellg. Результат выводится на экран.

Промпт-инженеринг — новый хайп или перспективная профессия? Рассказываем про направление с большим потенциалом и маленькой ко
Промпт-инженеринг — новый хайп или перспективная профессия? Рассказываем про направление с большим потенциалом и маленькой конкуренцией на рынке на нашей бесплатной лекции. По итогам эфира вы узнаете: — Кто такой промт-инженер и чем он занимается; — Как интегрировать скиллы промт-инжинеринга в работу, если вы работаете в IT; — Кому в действительности нужны его услуги и какие результаты это даст; — Сколько платят промт-инженеру в России и мире; — Кто может стать промт-инженером и какой порог входа; Кликай на ссылку и забирай подробную информацию вместе с классными бонусами. erid: LjN8KaG2R ООО Зерокодер, ИНН 9715401631

Интервью на C ++ с инженером Google: Closest Coin (с русскими субтитрами) Смотреть видео

Офер в Яндекс для опытных бэкендеров за два дня 24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер
Офер в Яндекс для опытных бэкендеров за два дня 24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно решить задачи онлайн до 20 августа и пройти несколько технических секции 24 августа, чтобы уже 25-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться. Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать. Узнать подробности и зарегистрироваться.

Алгоритм random_shuffle Он случайным образом переставляет элементы в диапазоне [первый, последний). Алгоритм меняет значение
Алгоритм random_shuffle Он случайным образом переставляет элементы в диапазоне [первый, последний). Алгоритм меняет значение каждого элемента на какой-либо другой случайно выбранный элемент. Про различия между shuffle и random_shuffle можно почитать здесь.

seniorcpp 25.07 Открытый урок. Аллокаторы в C++: Что делать, если менеджер памяти вас разочаровывает? 🤔 C++ известен тем, чт
seniorcpp 25.07 Открытый урок. Аллокаторы в C++: Что делать, если менеджер памяти вас разочаровывает? 🤔 C++ известен тем, что позволяет работать с памятью напрямую. Здесь вы точно знаете, где и как расположен каждый из ваших объектов, сколько памяти он занимает. Но можете ли вы принимать решение, где и как будет размещен ваш объект? Часто стандартные методы выделения памяти не удовлетворяют узким требованиям конкретной логики. ⚡️Присоединяйтесь к открытому вебинару 8 августа в 20:00 мск! Поговорим, зачем в C++ существуют аллокаторы. ✅Обсудим, что C++ приобрел при введении полиморфных аллокаторов. И рассмотрим конкретный пример увеличения производительности программы с их помощью. ➡️ Зарегистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cyEjkw Встречаемся в преддверии старта курса C++ Developer. Professional. До 31.07 на курс действует скидка 10%. 🔥

Функция div() Функция div() вычисляет величину numerator/denominator и возвращает частное и остаток в структуре div_t, котора
Функция div() Функция div() вычисляет величину numerator/denominator и возвращает частное и остаток в структуре div_t, которая содержит два целочисленных поля (в неопределённом порядке) quot и rem. Частное округляется до ближайшего нуля. Результат равняется quot*denominator+rem = numerator. Функции ldiv(), lldiv() и imaxdiv() выполняют эту же функцию, деля числа соответствующего типа и возвращая результат в структуре с соответствующим именем, всегда с полями quot и rem того же типа, что и аргументы функции. #для_начинающих

Функция ptsname() Функция ptsname() возвращает имя подчиненного псевдотерминального устройства, соответствующего главному уст
Функция ptsname() Функция ptsname() возвращает имя подчиненного псевдотерминального устройства, соответствующего главному устройству, на которое ссылается файловый дескриптор fd. Функция ptsname_r() является реентерабельным эквивалентном ptsname(). Она сохраняет имя устройства подчинённого псевдо-терминала в виде строки (завершающейся null) в буфер, указанный в buf. В аргументе buflen задаётся количество байт, доступных в buf. #для_начинающих

Библиотека Библиотека используется для работы с псевдотерминалами (PTY — Pseudo Terminal). Псевдотерминалы предоставляют сред
Библиотека <pty.h> Библиотека <pty.h> используется для работы с псевдотерминалами (PTY — Pseudo Terminal). Псевдотерминалы предоставляют средство для создания пары устройств, одно из которых может использоваться как мастер (master), а другое как рабочее (slave). Процессы могут обмениваться данными между этими устройствами, эмулируя терминальные взаимодействия. #для_начинающих

👍Пройдите тест по IoT👍 📌Пройдите тест из 10 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «IoT
👍Пройдите тест по IoT👍 📌Пройдите тест из 10 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «IoT Developer» от OTUS. Сможете сдать - пройдете на курс со скидкой! ⏰ Время прохождения теста ограничено 10 минут 👉ПРОЙТИ ТЕСТ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

#вопросы_с_собеседований Как подсчитать количество элементов в std::list? Чтобы подсчитать количество элементов в std::list, можно использовать следующие способы: 1. Вызвать метод size() самого списка. Он вернет количество элементов. 2. Проитерировать список циклом и считать элементы. 3. Воспользоваться алгоритмом std::distance, передав ему начало и конец списка. 4. Применить алгоритм std::count_if с условием, которое всегда истинно.

Про логирование и как его ускорить Как-то раз я ускорял логгер через io_uring, т.к. скорость логгера не позволяла совмещать активную торговлю и достаточное количество информации для расследования случившихся инцидентов. Поэтому расскажу что понял на эту тему. Простое логирование состоит из 2х частей: форматирование и вывод. Различные throttle'ры, примочки, фильтры, окрашиватели рассматривать не будем. Форматирование: 1) std::stringstream - не стоит, не надо: это медленно. 2) std::snprintf - не стоит, не надо: медленно, не современно. 3) std::format, поддерживается только с C++20. Я его не смотрел, но подозреваю, что в текущем виде libfmt будет быстрее. 4) libfmt - базовый выбор, достаточно быстрый. Для самых критических областей добавляем FMT_COMPILE, но не повсюду. 5) Не форматировать вообще. Можно складывать бинарные данные в файл (подход Binlog), либо отправлять куда-то (но это получается уже телеметрия). Но тогда файл требует декодирования отдельной тулзой. Но это можно автоматизировать. 6) Выносить форматирование в отдельный поток. Интересный подход из Quill. Они encode'ят аргументы в буфер, и предполагается, что это быстрее, чем отформатировать. Попробую эту либу, и позже поделюсь впечатлениями. 7) Еще крайне желательно не вычислять формат аргументы, если текущий verbosity все равно не выведет эту строку. Это приводит нас к тому, что нам подходят только макросы в том месте, где юзеры вызывают логирование. Какие есть варианты по выводу сформированной строки на file storage: 1) Вывод в файл через: - std::ofstream::operator << и flush - fwrite + fflush (glibc) - один write syscall Выдают примерно одинаковые величины задержек. По логике можно представить, что дёрнуть просто syscall дешевле, но по факту разницу сложно увидеть. В первых двух вариантах можно не делать flush на каждую строку, это сильно быстрее (т.к. данные буферятся в юзерспейсе), но тогда: - Если долго нет новой строчки, то последнюю можно долго не видеть в логе. Но можно дополнительно flush'ить по таймеру. - Что-то потеряется при креше, т.к. останется в памяти процесса. Однако это можно достать из кордампа gdb-скриптюней (такое не писал, но выглядит осуществимым). Проблемы: средняя скорость min/avg: до 1 микроса, но периодически write может сделать серьезный пик, уходя в запись на устройство на 1-5мс (это на nvme). Можно попробовать понастраивать механизм сбрасывания dirty pages (см. sysctl -a | grep vm.dirty_). 2) Передаём задачу записи в отдельный поток. Так делает, например, Quill. Это очень быстро (скорость: от сотни наносекунд, если используете простую очередь, mutex и cv, и несколько наносекунд, если пишете в ring buffer (если не боитесь переполнения и нет параллельных вызовов)), но имеет свои недостатки: - Этому отдельному потоку тоже нужно какое-то (неторговое) ядро. - При креше вы можете потерять несколько последних строк (а именно они обычно нужны при креше). Снова можно пробовать выковыривать из крешдампа, но это неудобно. Скорее всего, можно дождаться дозаписи в крэшхэндлере. 3) Запись в ядре через io_uring: выглядит интересно, но имеет свои сложности: код надо очень аккуратно писать, понимать как настраивать kworker'ы (куда их пиннить, какие там размеры буферов и т.п.). Подходит для kernel'ов старше 5.1. В случае креша без специальных приседаний ядро не дозапишет строки. Я эту штуку использовал, и было интересно познакомиться с механизмом. Ждал дозаписи строк в крэш-хэндлере. 4) Запись в отдельном своём сервисе. Как ему максимально быстро передать строку - отдельный непростой вопрос, который может сильно всё усложнить. Сервисом тоже нужно управлять, деплоить, он тоже может упасть. 5) Вариант предыдущего пункта: выводить в stdout и писать в файловую систему через стандартный сервис (journald, dockerd). Тоже один syscall, поэтому по скорости как запись в файл, но без пиков в несколько миллисов. Довольно быстро, стандартно. Легко поддержать ротацию. Если процесс крашнется сразу после лог строчки, то демон всё дозапишет. Дополняйте, если что, или поправьте.

Александр пишет про C++ разработку, concurrency, low-latency алгоритмы, high frequency trading, tips & tricks по утилитам для разработчиков, и проводит бесплатные практические воркшопы. Стоит почитать.

spaceship operator Spaceship operator (&lt;=&gt;) — это оператор сравнения, введенный в C++20. Преимущества spaceship operato
spaceship operator Spaceship operator (<=>) — это оператор сравнения, введенный в C++20. Преимущества spaceship operator: — Позволяет создавать типы, которые можно сравнивать с помощью одного оператора вместо нескольких (==, !=, <, > и т. д.). — Упрощает написание функций сравнения, например std::sort. — Читабельнее и компактнее кода с традиционными операторами сравнения.

#вопросы_с_собеседований Что случится, если вернуть ссылку на временный объект? Если вернуть ссылку на временный объект, созданный в стеке, то это приведет к неопределенному поведению программы. После выхода из функции память, выделенная под временный объект, освобождается. И если где-то сохранилась ссылка на этот объект, то при попытке обратиться к нему произойдет ошибка.

@seniorcpp 22.07 🦾Хардкорный тест по языку С🦾 📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на
@seniorcpp 22.07 🦾Хардкорный тест по языку С🦾 📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «Программист С» от OTUS. Сможете сдать - пройдете на курс по спеццене! ⏰ Время прохождения теста ограничено 30 минут 👉ПРОЙТИ ТЕСТ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

«Код-ревью — это когда твои комментарии в интернете действительно читают»: дискуссия с разработчиками на C++ Смотреть статью