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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🍪 Как zip итерирует несколько ranges одновременно без накладных расходов?

Параллельная итерация по нескольким последовательностям — паттерн из Python. В C++ до C++23 это требовало индексов или связывания итераторов руками. views::zip делает это zero-cost абстракцией.


Tuple итераторов

Под капотом zip хранит tuple из итераторов каждого range. При ++it инкрементирует все одновременно:

std::vector<int> ids = {1, 2, 3};
std::vector<string> names = {"Alice", "Bob", "Charlie"};

for (auto [id, name] : views::zip(ids, names)) {
// id и name — это references, не копии
std::print("{}: {}\n", id, name);
}



💡 Structured binding магия

auto [id, name] — это structured binding поверх tuple<int&, string&>. Компилятор разворачивает это в прямой доступ к памяти, никаких промежуточных объектов:

// Что реально происходит
auto&& __pair = *it; // tuple<int&, string&>
int& id = get<0>(__pair);
string& name = get<1>(__pair);



🍬 Остановка на кратчайшем

zip заканчивается когда любой из ranges закончился. Это безопасно — не будет out-of-bounds:

vector<int> short_vec = {1, 2};
vector<int> long_vec = {10, 20, 30, 40};
auto z = views::zip(short_vec, long_vec); // Только 2 элемента


Практика: Используй вместо индексного доступа [i] когда нужно синхронно пройти несколько контейнеров. Компилятор оптимизирует до прямых указателей, часто быстрее индексов.


🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🎄 Скоро Новый год, а ты всё ещё не в бигтехе?

Если твой путь лежит в ML, DS или AI, то одна вещь решает всё: математика. Без неё — хоть три проекта сделай, хоть сотню туториалов посмотри — на собесе тебя всё равно вернут на «а что такое градиент?»

🔥 Экспресс-курс «Математика для Data Science» — 8 недель, чтобы закрыть базу раз и навсегда.

Что внутри:

🔘 живые вебинары, где можно задавать вопросы экспертам
🔘 записи лекций + доступ к материалам
🔘 практические задания на Python и финальный мини-проект с фидбеком
🔘 программа обновлена в ноябре 2025
🔘 2 месяца только нужного — без воды
🔘 достаточно школьной математики и базового Python

🎁 Бонусы ноября:

→ 40% скидка до 30 ноября
→ при оплате до конца месяца — курс «Базовая математика» в подарок
→ бесплатный тест, чтобы узнать свой уровень математики

👉 Хочу стартовать
😎 Где сидят крутые плюсовики

Мы знаем, что вокруг C++ огромное количество полезного контента — от классических блогов и телеграм-каналов до Stack Overflow, Reddit-сообществ и YouTube-каналов. А может вы сами создаете контент про плюсы?


💬 Делитесь в комментариях своими любимыми местами, где вы изучаете C++, следите за новостями стандарта или черпаете вдохновение. Это могут быть известные ресурсы вроде isocpp.org, малоизвестные телеграм-каналы, подкасты, конференции или личные блоги разработчиков.

Библиотека C/C++ разработчика
🤔2👾1