en
Feedback
Библиотека C/C++ разработчика | cpp, boost, qt

Библиотека C/C++ разработчика | cpp, boost, qt

Open in Telegram

Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

Show more
2025 year in numberssnowflakes fon
card fon
19 540
Subscribers
-824 hours
-447 days
-17630 days
Posts Archive
Repost from TgId: 1940255915
Какой тип мьютекса нужен?Anonymous voting
  • std::mutex
  • std::recursive_mutex
  • std::timed_mutex
  • std::shared_mutex
  • Никакой мьютекс не поможет
0 votes
😁 3😢 1
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
00:10
Video unavailableShow in Telegram
В proglib.academy — Глобальная распродажа знаний ‼️ 💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
Курсы с практикой, без воды и пафоса. Просто берёшь и делаешь апгрейд.
👉 Успей забрать свой курс на proglib.academy
Show all...
IMG_8386.mp43.69 MB
😢 6😁 1🥱 1
Photo unavailableShow in Telegram
🪣 50 фраз которые портят ваше резюме Рекрутеры видят одно и то же в каждом втором резюме: «командный игрок», «работаю с современными технологиями», «обладаю аналитическим складом ума». Эти клише не просто скучны — они ставят под сомнение вашу компетентность. Разбираем 50+ шаблонных фраз по всем IT-направлениям и показываем, как их заменить или вообще выкинуть. Читаем дальше... Библиотека C/C++ разработчика #буст
Show all...
😁 2
Repost from TgId: 1770516712
🍖 Какую тему будем разбирать на этой неделе?Anonymous voting
  • Стандартная библиотка
  • Алгоритмы
  • Многопоточность
  • Оптимизация кода
  • Всё что угодно только не UB
0 votes
😁 2
Photo unavailableShow in Telegram
Лучший подарок для программиста😻 Перевод: Розы красные Фиалки синие Неожиданное '}' на линии 32 Библиотека C/C++ разработчика #развлекалово
Show all...
🤩 5😁 4🌚 1
⚡️ VS Code: мультикурсоры
Знакомо ли тебе чувство, когда нужно изменить одинаковые переменные в 15 местах, и ты тыкаешь мышкой чтобы поменять каждое из них?
Решение: Ctrl+D - выделяет каждое следующее вхождения Выдели слово → жми Ctrl+D для каждого следующего → редактируй все сразу
// Было
int temp = 0;
temp = getValue();
process(temp);
return temp;

// Жмёшь Ctrl+D три раза на temp и меняешь
int result = 0;
result = getValue();
process(result);
return result;
💣 Бонус: Ctrl+Shift+L выделяет ВСЕ вхождения сразу. Но осторожно - может зацепить лишнее. Библиотека C/C++ разработчика #буст
Show all...
👍 8 3
🦀 Транспиляция кода: от одного языка к другому Представьте ситуацию: вы нашли идеальное решение на GitHub, но оно написано не на том языке. Или ваш руководитель прочитал статью о новом фреймворке, и теперь нужно переписывать всю кодовую базу. Знакомо? Хорошая новость: современные LLM-модели отлично справляются с транспиляцией кода между языками программирования. ✏️ Промпт
Rewrite the following code in C++:

[Вставь свой код сюда]
🍴 Пример использования
# Исходный Python код

def count_words(text):
    """Count word frequency in text"""
    words = text.lower().split()
    freq = {}
    for word in words:
        freq[word] = freq.get(word, 0) + 1
    return freq

# Пример использования
text = "hello world hello python world"
print(count_words(text))
# Output: {'hello': 2, 'world': 2, 'python': 1}
Результат:
#include <iostream>
#include <string>
#include <map>
#include <sstream>
#include <algorithm>

std::map<std::string, int> count_words(const std::string& text) {
    std::map<std::string, int> freq;
    std::istringstream stream(text);
    std::string word;
    
    while (stream >> word) {
        // Convert to lowercase
        std::transform(word.begin(), word.end(), word.begin(), ::tolower);
        freq[word]++;
    }
    
    return freq;
}

int main() {
    std::string text = "hello world hello python world";
    auto result = count_words(text);
    
    for (const auto& [word, count] : result) {
        std::cout << word << ": " << count << std::endl;
    }
    
    return 0;
}
Библиотека C/C++ разработчика #буст
Show all...
👍 9👾 1
🎲 std::random vs rand() — генерация случайных чисел Старый rand() из Си имеет множество проблем: плохое качество, ограниченный диапазон, глобальное состояние. В C++11 появились современные генераторы из <random>. ❌ Старый подход:
#include <cstdlib>
#include <ctime>

srand(time(nullptr)); // Предсказуемо!
int dice = rand() % 6 + 1; // Неравномерное распределение!
double prob = rand() / (double)RAND_MAX; // Плохая точность
🍒 Современный подход:
#include <random>

// Инициализация генератора (один раз)
std::random_device rd;
std::mt19937 gen(rd()); // Mersenne Twister

// Равномерное распределение [1, 6]
std::uniform_int_distribution<> dice(1, 6);
int roll = dice(gen);

// Вещественное [0.0, 1.0)
std::uniform_real_distribution<> prob(0.0, 1.0);
double p = prob(gen);

// Нормальное распределение
std::normal_distribution<> normal(0.0, 1.0);
double value = normal(gen);
✏️ Доступные распределения: • uniform_int_distribution — целые числа • uniform_real_distribution — вещественные • normal_distribution — гауссово • bernoulli_distribution — булево • exponential_distribution, poisson_distribution и другие Библиотека C/C++ разработчика #буст
Show all...
👍 12🔥 7🌚 2👾 1
Photo unavailableShow in Telegram
💥 Весь октябрь -40% на курсы для разработчиков в proglib.academy Бери знания под свой стек: Python | алгоритмы | математика для Data Science | архитектура кода.
Пока одни ждут «идеальный момент», другие просто учатся. А потом берут ваши офферы.
⚡️ Пока скидка действует, апдейтни свои навыки
Show all...
😁 1
⚙️ C++26 Contract Assertions C++26 Contract Assertions — это введении нового механизма для проверки корректности программы во время выполнения, которые заменяют традиционные макросы assert более мощным и гибким инструментом. В документе P3846R0 авторы разбирают ключевые возражений против включения контрактных утверждений в стандарт C++26 и дают подробные ответы на каждое из них. ❗Ключевые моменты документа: • Contract assertions не делают C++ «менее безопасным» — они позволяют инкрементально улучшать корректность кода • Возможность настройки семантики проверок (ignore/observe/enforce/quick-enforce) является необходимостью, а не недостатком • Mixed-mode сборки с разными семантиками контрактов — это неизбежность модели компиляции C++, а не баг в дизайне Основной фокус — защита функциональности, которая разрабатывалась более 20 лет, и получила реализацию в GCC и Clang. 👉 Драфт с предложениями Библиотека C/C++ разработчика #свежак
Show all...
🙏 4👍 3
🔥 std::list - когда он действительно нужен Проблема: Многие выбирают std::list думая, что вставка O(1) всегда лучше, но забывают про cache locality. ✏️ Когда list ДЕЙСТВИТЕЛЬНО лучше: 1️⃣ Частые вставки/удаления в середине + большие объекты:
struct HeavyObject { 
    std::array<double, 1000> data; 
};

std::list<HeavyObject> items; // Не перемещаем данные
auto it = items.begin();
std::advance(it, 5);
items.insert(it, HeavyObject{}); // Быстро!
2️⃣ Когда нужна стабильность итераторов:
std::list<int> data = {1, 2, 3};
auto it = data.begin();
data.push_back(4); // it все ещё валиден!
3️⃣ В 90% случаев vector быстрее list:
// vector выигрывает благодаря cache:
std::vector<int> fast;  // Данные подряд в памяти
std::list<int> slow;    // Прыжки по указателям
Библиотека C/C++ разработчика #буст
Show all...
🙏 10👍 7 2👾 1
🐸 Подборка вакансий для C++-разработчиков за неделю C++ Software Developer (FreeCAD) — от 150 000 и до 350 000 ₽ Удаленно C++/Qt/QML разработчик под Android в команду Транспорта — Удаленно Разработчик C++/Rust (SDN dataplane, DPDK/DOCA API) — от 300 000 и до 600 000 ₽ Удаленно C++ Gameplay Programmer (Unreal Engine) — от 1 500 и до 3 000 $ Удаленно Программист/разработчик C (senior) — до 440 000 ₽ Офис (Москва) Библиотека C/C++ разработчика
Show all...
👍 1
Photo unavailableShow in Telegram
Готовы с нуля создавать телекоммуникационные решения для беспроводных мобильных сетей и сопутствующих услуг? Тогда участвуйте в SPRINT OFFER C++ Software Engineer и получите оффер всего за 3 дня 💻 У нас: 🚀 Удалённый формат работы или в офисах городов присутствия (Москва, СПб, Нижний Новгород, Екатеринбург, Минск). 🚀 Реальный карьерный рост: как вертикальный, так и горизонтальный. 🚀 Амбициозные проекты и уникальная команда инженеров. 🚀 Учебный портал с лекциями от экспертов, участие в конференциях, изучение английского и дополнительное обучение на внешних курсах. 🚀 ДМС с первого дня, консультации юристов, психологов и экспертов по ЗОЖ. Мы в поиске: Разработчиков C++ (Middle/Senior/Tech Lead) с опытом в промышленной разработке от 3 лет, уверенным знанием C/C++ и Linux, а также сетей, базирующихся на TCP/IP. Направления, которым вы нужны: Telecom Platform и разработка базовых станций с поддержкой LTE/GSM. В команде Telecom Platform инженеры разрабатывают полное платформенное решение для телекоммуникационных систем, а разработчики базовой станции LTE/GSM создают высоконагруженные системы, которые обеспечивают связь как критически важных, так и новых поколений. 💙 Прочитать подробнее можно по ссылке. Отправляйте заявку до 19 октября и присоединяйтесь к YADRO!
Show all...
🔥 1😁 1
Repost from TgId: 1940255915
Что произойдёт?Anonymous voting
  • Код работает корректно
  • Compilation error
  • Runtime error
  • map останется пустым
  • Undefined behavior
0 votes
😁 8
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
👍 1
Photo unavailableShow in Telegram
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Полезное:Designated Initializers — именованная инициализация из C++20 • std::variant — типобезопасный union • FuzzTest — Фреймворк для фаззинг-тестирования в C++ • Регулярные выражения в C++ — промпт для написания регулярных выражений • Почему классический ООП тормозит игровые движки — доклад о проблемах о проблемах связанных с производительностью 🔥 Интересные проекты:tile-lang — предметно-ориентированный язык, предназначенный для упрощения разработки высокопроизводительных ядер GPU и CPU • Audacity — простой в использовании многодорожечный аудиоредактор и рекордер • Crow — быстрый и простой в использовании микрофреймворк для веба Библиотека C/C++ разработчика #свежак
Show all...
👍 2🥰 1
Repost from TgId: 1770516712
Какое главное преимущество алгоритма скользящего окна перед наивным подходом?Anonymous voting
  • Использует меньше памяти
  • Легче в реализации
  • Работает только с отсортированными данными
  • Не требует использования циклов
  • Избегает избыточных вычислений
0 votes
😁 5 1
Photo unavailableShow in Telegram
🚀 Курс «ИИ-агенты для DS-специалистов» уже стартовал Первый вебинар успешно прошёл, участники уже начали разбираться, как использовать ИИ-агентов в реальных проектах. Но всё самое интересное только начинается! 🔥 Впереди 4 мощных занятия — с практикой, инсайтами и разбором кейсов от экспертов. 💸 Сейчас действует специальная цена → 69.000 ₽ вместо 79.000 ₽. ⏳ Осталось всего 4 места. Не упустите шанс прокачаться в том, что будет определять будущее индустрии. 👉 Забронировать место на курсе
Show all...
😁 5 1🌚 1