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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Download Telegram
🎤 Ваши знания по ИИ-агентам + наша аудитория в 1 млн человек = профит

Мы в Proglib активно качаем тему ИИ-агентов. Если вы в теме, то у нас есть предложение 👇

Что с нас?

- Огромный охват: пропиарим ваши соцсети и продукты на 1 000 000+ айтишников.
- Личный бренд: станете узнаваемым экспертом в самой горячей нише 2026 года.
- Никакой рутины: наши редакторы сами упакуют ваши мысли в крутые посты.

Что с вас?

Любой экспертный контент по ИИ-агентам: кейсы из прода, шпаргалки, статьи, наработки по стеку (LangGraph, CrewAI, AutoGen и др.) или просто мысли по архитектуре.

👉 Стать экспертом и заявить о себе
😁1
🍋 Just My Code в Visual Studio

По умолчанию, когда вы нажимаете F11 (Step Into) в Visual Studio, отладчик проваливается в каждую функцию — включая стандартную библиотеку, runtime и сторонний код?

Функция Just My Code решает эту проблему. При включении отладчик автоматически перешагивает через код, который не принадлежит вашему проекту — будь то STL, CRT или любые внешние библиотеки.


🍀 Включить просто:

Tools → Options → Debugging → General → Enable Just My Code



🍬 Пример:

#include <vector>
#include <algorithm>
#include <iostream>

int doubleValue(int x) {
return x * 2; // ← ВАШ код
}

int main() {
std::vector<int> v = {3, 1, 4, 1, 5};

// F11 здесь без JMC → провалится в std::sort
std::sort(v.begin(), v.end());

// F11 здесь без JMC → провалится в std::transform
std::transform(v.begin(), v.end(), v.begin(), doubleValue);

return 0;
}


Без JMC: F11 на std::sort уводит вас в дебри introsort внутри STL.
С JMC: отладчик перепрыгивает sort и останавливается на следующей вашей строке.


📍Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍1
🥳 Генераторы: views::iota и views::repeat

Ranges умеют генерировать их на лету — без выделения памяти под вектор. Разберём два главных генератора.


🍕 views::iota — числовой диапазон

Генерирует последовательность чисел в полуоткрытом интервале [start, end):

// Числа от 0 до 9
for (int i : views::iota(0, 10)) {
std::cout << i << " "; // 0 1 2 3 4 5 6 7 8 9
}


Можно передать только одно значение — получится бесконечная последовательность:

auto naturals = views::iota(1); // 1, 2, 3, 4, ...
auto first_10 = naturals | views::take(10);


❗️ Бесконечный диапазон обязательно нужно ограничить — например, через views::take.


🌳 Индексированный обход (zip + iota)

До появления views::enumerate пару (индекс, значение) получали через views::zip с iota:

std::vector<std::string> fruits = {"яблоко", "банан", "вишня"};

for (auto [i, fruit] : views::zip(views::iota(0), fruits)) {
std::cout << i << ": " << fruit << "\n";
}
// 0: яблоко
// 1: банан
// 2: вишня


В C++23 для этого есть views::enumerate — но zip + iota по-прежнему работает и даёт понять, как устроена индексация изнутри.


🍙 views::repeat — повторение значения (C++23)

Генерирует бесконечный поток из одного и того же значения:

for (int x : views::repeat(0) | views::take(5)) {
std::cout << x << " "; // 0 0 0 0 0
}


Или сразу с ограничением — передаём второй аргумент:

for (auto s : views::repeat("hello", 3)) {
std::cout << s << " "; // hello hello hello
}


❗️ Форма с двумя аргументами появилась в C++23 и возвращает конечный диапазон — views::take не нужен.


📍Навигация: ВакансииЗадачиСобесы

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

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
1🥰4🤩1
🫠 Задача на выходные: LRU Cache

Классика интервью. Проверяет знание STL, сложности операций и дизайн-мышление😸

// Реализуй класс LRUCache:
// - LRUCache(int capacity)
// - int get(int key) // O(1)
// - void put(int key, int val) // O(1)
//
// При переполнении вытесняется
// наименее недавно использованный элемент.
//
// Разрешено использовать STL.


✏️ Реализуй. Объясни выбор структур данных и почему сложность O(1).


📍Навигация: ВакансииЗадачиСобесы

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

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM