Библиотека C/C++ разработчика | cpp, boost, qt
20.2K subscribers
1.8K photos
51 videos
16 files
3.99K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🔥 Sourcetrail — кроссплатформенный исследователь исходного кода

Sourcetrail
— это интерактивный инструмент для
визуализации кода, который строит графы зависимостей между классами,
функциями и файлами. Проще говоря — он превращает код в понятные схемы,
по которым легко ориентироваться.


🏖️ Что умеет Sourcetrail:

• Поддержка C++, C, Java, Python
• Визуальный граф связей + синхронный просмотр кода
• Интеграция с VS Code, IDEA, Vim и др. через плагины
• Быстрый поиск по всей кодовой базе
• Идеально для анализа legacy-проектов и обучения

Бывает полезно, если не хочется вчитываться в код а структуру понять надо.

👉 GitHub

Библиотека C/C++ разработчика
👍9🔥6
🍪 Профилирование с perf

Perf — мощный профайлер для Linux, который поможет найти узкие места в вашем C++ коде.


✏️ Основные команды:
# Запись профиля
perf record ./your_program

# Просмотр результатов
perf report

# Профилирование по CPU
perf stat ./your_program

# Анализ кэш-промахов
perf stat -e cache-misses ./your_program



‼️ Что можно анализировать:

• Время выполнения функций
• Cache misses
• Branch mispredictions
• Memory bandwidth


🍬 Методичка по использованию perf

Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2🤩1
🎸 IT, костер, гитара: как за 5 шагов организовать драйвовый корпоратив

Чтобы ваш корпоратив приобрёл статус настоящего события года, необходимо учитывать ряд важных аспектов, которые гарантируют создание уникальной и яркой атмосферы.

В статье все ключевые моменты, которые помогут вам грамотно организовать и провести мероприятие на высшем уровне.

➡️ Читать статью

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁2
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😼 Интересное:

Гибридные вакансии и фантомный рост — анализ рынка вакансий
О реальной ситуации на рынке junior-разработчиков — обзор возможностей для джунов в данный момент времени

😎 Полезное:

Оптимизация копирования с помощью техники Zero-Copy — оптимизация при копировании, полезна если данных много
std::mdspan в C++23 — стандартизованный способ адресации многомерных данных
Профилирование с perf — методичка об использовании профилировщика perf

🔥 Интересные проекты:

Sourcetrail — интерактивный инструмент для визуализации код
OrcaSlicer — программное обеспечение с открытым исходным кодом для нарезки и 3D-печати
nRFBOX — универсальный гаджет для сетей BLE и 2,4 ГГц


Библиотека C/C++ разработчика
🥰2👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🏃‍♀️ Новый поток курса — собери своих AI-агентов

7 октября стартует второй поток курса «AI-агенты для DS-специалистов».
За 5 недель вы научитесь собирать агентов, которые уже сейчас будут помогать бизнесу.

В кружке выше Максим Шаланкин, наш преподаватель, рассказывает подробнее — включай, чтобы не пропустить.

👉 Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3
🐸 Подборка вакансий для C++-разработчиков за неделю

C++ разработчик — Офис (Санкт-Петербург)

Эксперт С++ в команду технологии автономного вождения — Офис (Москва)

Разработчик C++ — Удалёнка

Разработчик С/C++ — Офис (Новосибирск)

C++ Qt/QML Developer — от 200 000 и до 270 000 ₽ Удалёнка

Библиотека C/C++ разработчика
👍2😁1👾1
🍿 How to: Structured Bindings: распаковка данных (C++17)

Элегантная работа с multiple return values и сложными структурами.

#include <map>
#include <tuple>
#include <array>

// Функция возвращает несколько значений
std::tuple<int, std::string, double> get_data() {
return {42, "hello", 3.14};
}

struct Point { int x, y; };

int main() {
// 1. Распаковка tuple
auto [id, name, price] = get_data();
std::cout << id << " " << name << " " << price << "\n";

// 2. Распаковка struct
Point p{10, 20};
auto [x, y] = p;
std::cout << "Point: " << x << ", " << y << "\n";

// 3. Распаковка array
std::array<int, 3> arr{1, 2, 3};
auto [first, second, third] = arr;

// 4. Распаковка map::insert результата
std::map<std::string, int> m;
auto [iterator, inserted] = m.insert({"key", 42});
if (inserted) {
std::cout << "Inserted: " << iterator->first << "\n";
}

// 5. Итерация по map с распаковкой
for (const auto& [key, value] : m) {
std::cout << key << " -> " << value << "\n";
}

// 6. Распаковка с модификаторами
auto& [rx, ry] = p; // Ссылки на члены
rx = 100; // Изменяем оригинал
}


💡 Применения:

Более читаемый код при работе с парами, tuple, структурами


✏️ А как вы распаковываете данные? Пишите в комментариях.

Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Так, владелец макбука. Хватит позировать в кофейне.

Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.

Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.

ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.

🎁 И да, при покупке курса ML до 1 сентябрякурс по Python получаешь бесплатно.

👉 Апгрейд от «вайба» до «оффера» тут
😁2
Мы сделаем вам предложение, от которого невозможно отказаться 🤌

Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.

Предложение действует только до 1 сентября. Ничего личного, просто математика.

👉 Принять предложение
😁1
⚡️ Constexpr эволюция — от C++11 до C++23

Хотите больше вычислений во время компиляции для максимальной производительности?

constexpr развивался от простых функций в C++11 до полноценного compile-time программирования в C++20. Позволяет выполнять сложную логику на этапе компиляции.


💡 C++11 — только простые функции:

constexpr int factorial(int n) {
return n <= 1 ? 1 : n * factorial(n - 1);
}



💡 C++14 — циклы и условия:

constexpr int sum_array(const int* arr, size_t size) {
int sum = 0;
for (size_t i = 0; i < size; ++i) {
sum += arr[i];
}
return sum;
}



💡 C++20 — std::vector и dynamic memory:

constexpr std::vector<int> make_sequence(int n) {
std::vector<int> result;
for (int i = 0; i < n; ++i) {
result.push_back(i * i);
}
return result;
}



💡 C++23 — constexpr std::string:

constexpr std::string process_text() {
std::string result = "Hello, ";
result += "constexpr world!";
return result;
}

constexpr auto text = process_text(); // Во время компиляции!



Библиотека C/C++ разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113👍2