cookie

Utilizamos cookies para mejorar tu experiencia de navegación. Al hacer clic en "Aceptar todo", aceptas el uso de cookies.

avatar

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

Все самое полезное для плюсовика и сишника в одном канале. Список наших каналов: https://t.me/proglibrary/8353 Учиться у нас: https://proglib.io/w/907158ab Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Mostrar más
Publicaciones publicitarias
24 922
Suscriptores
Sin datos24 horas
+37 días
-9530 días
Distribuciones de tiempo de publicación

Carga de datos en curso...

Find out who reads your channel

This graph will show you who besides your subscribers reads your channel and learn about other sources of traffic.
Views Sources
Análisis de publicación
MensajesVistas
Acciones
Ver dinámicas
01
#memes
421Loading...
02
⁉️Хотите прокачаться в разработке на С++? Ждём вас на открытом практическом уроке «Условные переменные в С++» от OTUS, где мы разберем: — что такое std::condition_variable и какие задачи он решает; — типовые ошибки при его использовании; — что такое spurious wakeup. А также напишем несколько concurrency-примитивов на основе condition_variable. Спикер — ведущий программист с большим международным опытом. ⏰Встречаемся 11 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS! ➡️Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqvHHe4m
1 1112Loading...
03
💸📊 На сколько просели зарплаты в ИТ в 2024 году? Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас. 🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей. 👉 Остальные данные — в статье 👉 Зеркало
1 6763Loading...
04
#memes
2 46254Loading...
05
🍔 Отладочные макросы Отладочные макросы в C++ используются для упрощения процесса отладки и диагностики программного кода Основные отладочные макросы включают assert, static_assert и пользовательские макросы 🍓 assert Макрос assert определён в заголовочном файле <cassert> и используется для проверки логических выражений во время выполнения программы. Если выражение вернёт false, assert завершает выполнение программы и выводит сообщение об ошибке #include <cassert> void test(int x) { assert(x > 0 && "x must be positive"); // остальной код функции } int main() { test(5); // проходит проверку test(-3); // приводит к ошибке во время выполнения return 0; } 🍒 static_assert static_assert введён в C++11 и позволяет проверять условия на этапе компиляции. Это особенно полезно для проверки условий, которые должны выполняться всегда, независимо от состояния программы во время выполнения #include <type_traits> template <typename T> void check() { static_assert(std::is_integral<T>::value, "T must be an integral type"); } int main() { check<int>(); // проходит проверку check<float>(); // ошибка компиляции: T must be an integral type return 0; } 🫐 Пользовательские отладочные макросы Вы также можете определять собственные макросы для отладки, которые помогут вам выводить дополнительную информацию или выполнять специфические проверки #include <iostream> #define DEBUG #ifdef DEBUG #define DEBUG_PRINT(x) std::cout << x << std::endl #else #define DEBUG_PRINT(x) #endif int main() { int value = 42; DEBUG_PRINT("Value: " << value); return 0; }
2 13224Loading...
06
👨‍🎓️ 33 лучших вуза России для будущих программистов 2024-2025 Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему. 🔗 Читать статью 🔗 Зеркало
2 33214Loading...
07
#memes
2 81421Loading...
08
🍔 Библеотека CPR C ++ Requests (CPR) — это простая оболочка для libcurl, вдохновленная отличным проектом Python Requests Простой интерфейс libcurl часто бывает не так прост, и его неправильное использование является распространенным источником ошибок и разочарования. Используя более выразительные языковые возможности C++17 (или C++11 в случае, если вы используете cpr < 1.10.0), эта библиотека передает суть преобразования сетевых вызовов в несколько кратких идиом 👉 Ссылочка
2 94565Loading...
09
🌳 Ключевого слова final в программах на C++ Заметка об использовании ключевого слова final, о влиянии его на производительность 👉 Ссылка
3 05423Loading...
10
#memes
3 41240Loading...
11
🚀 Начинаете свой путь в разработке на С++? Ждём вас на открытом практическом уроке «Шаблоны в С++ и основы метапрограммирования» от OTUS, где мы разберем: - мощный инструмент создания и настройки типов во время компиляции с помощью шаблонов в C++; - как шаблоны обогащают функциональность языка и улучшают процесс разработки; - ответы на все возникающие вопросы. Спикер Евгений Пальчуковский — разработчик с большим международным опытом в финтехе. ⏰ Встречаемся 28 мая в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS! ➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzqvzx7aK
2 4867Loading...
12
🍔 Какая избавиться от вложенных min/max? Старый вариант использования auto maxVal = std::max(x1, min(x2, min(x3, x4))); Сейчас же можно использовать cписки инициализации, чтобы уменьшить вложенность auto maxVal = std::max(({x1, x2, x3, x4});
2 99410Loading...
13
#memes
3 61848Loading...
14
Подкаст про системное программирование для разработчиков на С/С++ Использовать компиляторы, операционные системы и отладчики — здорово, еще круче — понимать, как они устроены. О сложных материях системного программирования доступно рассказывают ведущие подкаста «Битовые маски». Вместе с гостями — практикующими инженерами и разработчиками — они обсуждают актуальные задачи в отрасли и случаи из практики. Для разработчиков на C/C++ есть отдельный плейлист. Вот несколько тем из него: • LLVM и GCC / Register allocation / IT-образование в вузах • LLVM в компиляторах для GPU / Стандарты C++ • Разработка компиляторов / LLVM backend для RISC-V / Компилятор для Kotlin • Сетевые протоколы / Гетерогенные системы / Операционные системы / RTOS Смотреть подкаст → Чтобы не пропустить новые выпуски подкаста, подписывайтесь на Telegram-канал «Битовые маски».
2 51328Loading...
15
❤️ Активация с первого взгляда: как влюбить пользователя в продукт Хотите научиться превращать случайных посетителей в преданных фанатов? Рассказываем, как повысить активацию пользователей, отличить ее от aha-момента и использовать эти знания для кратного роста количества активных пользователей. 🔗 Читать статью 🔗 Зеркало
3 2872Loading...
16
#memes
4 01758Loading...
17
😱 В чем разница между вектором и списком? std::vector — это реальный массив, а базовая реализация std::list — это двусторонне связанный список ❗ std::vector поддерживает произвольный доступ с доступом за O(1), но производительность вставки и удаления в общем случае низкая. Но стоить отметить что вставка в конец если capacity больше size происходить за O(1) ❗Так же вставка и удаление из std::vector в узлах, отличных от хвоста, вызовет копирование памяти, в std::list такого не происходит ❗std::list не поддерживает произвольный доступ, но производительность вставки и удаления O(1) ❗std::vector хранится последовательно, список — нет ❗std::vector выделяет память сразу и увеличивает емкость в два раза, когда ее недостаточно. std::list будет обращаться за новой памятью каждый раз, когда вставляется новый узел
3 74728Loading...
18
⚡️Proglib запускает канал про ИИ для генерации звука Там мы будем рассказывать про все существующие нейросети, которые генерируют музыку и голос — с пошаговыми инструкциями, инструментами и лайфхаками. ⭐️генерация голоса и музыки ⭐️замена и перевод речи ⭐️распознавание звуков 👉Подписывайтесь!
3 3372Loading...
19
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
3 5242Loading...
20
😱 Как объединить строки в C? В Си строки - это просто массивы char'ов. Следовательно, мы не можем напрямую объединить их с другими строками Мы можем использовать strcat функцию, которая добавляет строку, на которую указывает src, в конец строки, на которую указывает dest: char *strcat(char *dest, const char *src); ❗️dest выполняет роль буфера назначения. Буфер назначения должен быть буфером массива символов. Он должен быть больше суммарного размера двух строк: той которая в нём уже есть и той которая копируется Пример: char str[80]; strcpy(str, "these "); strcat(str, "strings "); strcat(str, "are "); strcat(str, "concatenated."); ❗️Возвращаемое значение strcat можно просто игнорировать, оно просто возвращает тот же указатель, который был передан в качестве первого аргумента strcat(strcat(str, foo), bar); Из всего выше сказанного объединить две строки можно с помощью char *foo = "foo"; char *bar = "bar"; char str[80]; strcpy(str, "TEXT "); strcat(str, foo); strcat(str, bar);
3 14512Loading...
21
🗝️ 40 незаменимых API для разработчиков Разработчики постоянно ищут способы оптимизировать свою работу. Мы собрали 40 API, которые помогут вам сэкономить время, повысить эффективность и добавить новые функции в ваши проекты. 🔗 Читать статью 🔗 Зеркало
3 24933Loading...
22
Устроиться бэкендером в Яндекс за выходные 8–9 июня устраиваем Weekend Offer Backend. До 6 июня решите задачи в Контесте, 8-го пройдите два собеседования, а 9 июня познакомьтесь с командами и получите офер. В мероприятии участвуют команды: Crowd, Ecom-сценарии, Поиск, Алиса, Автономные автомобили, Большие данные. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным. Нанимаем в офисы России и Республики Беларусь. Узнать подробности и зарегистрироваться можно здесь.
2 6877Loading...
23
#memes
4 07938Loading...
24
🌳 Разговор о производительности Монолог и немного дискуссии с аудиторией о производительности, проблемах разработчиков, и вообще жизни🙂 Краткое содержание • Обсуждение производительности кода • Опыт оптимизации производительности • Влияние компилятора и линковщика на производительность • Поиск узких мест в коде • Практические советы • Обсуждение оптимизации кода • Анекдоты и рефлексы программистов • Обсуждение проблем с синтаксисом и управлением памятью • Примеры из практики 👉 Ссылка
4 17829Loading...
25
⭐🎤 Как не облажаться с докладом на IT-конференции Готовитесь к докладу на IT-конференции? Не хотите оказаться в роли «того самого» докладчика, на которого все жалуются в кулуарах? Узнайте, как не облажаться и сделать свой доклад полезным и запоминающимся. 🔗 Читать статью 🔗 Зеркало
3 1438Loading...
26
🔮 В чем разница между статическим выделением памяти и динамическим выделением памяти? - Статическое выделение памяти выполняется во время компиляции и не потребляет ресурсов ЦП; динамическое выделение памяти выполняется во время выполнения, а для выделения и освобождения требуются ресурсы ЦП - Динамическое выделение памяти может привести к утечке памяти - Для выделения статической памяти не требуется поддержка указателей. Для динамического выделения памяти требуется - Статическое выделение памяти выполняется по плану, и размер блока памяти определяется перед компиляцией. Динамическое выделение памяти выполняется по мере необходимости - Статическое выделение памяти дает контроль над памятью компилятору. Динамическое выделение памяти дает контроль над памятью программисту
3 92722Loading...
27
#memes
4 37629Loading...
28
🌳 Разница между кучей и стеком • Стек непрерывен, но куча не обязательно непрерывна • Существуют разные способы применения.Стек автоматически выделяется операционной системой, а кучей приходится управлять вручную • Стек растет от большего адреса к меньшему, куча растет от меньшего адреса к большему • Временем жизни стека управляет система и в большинстве случаев доступ к нему более быстрый. Куча же может распределяться неравномерно по памяти и подвержена внутренней фрагментации
4 71134Loading...
29
❓ Как получить размер файла в байтах? В C++17 была добавлена библиотека filesystem, которая упрощает работу с файловой системой #include <filesystem> int main() { std::uintmax_t size = std::filesystem::file_size("file.txt"); } ❗️Стоит учитывать, что если файл был открыт не только вами, то размер может быть изменён извне
4 57316Loading...
30
🅾️ Что такое «О» большое: объясняем на простых примерах «О» большое (Big O notation) — это математическая нотация, которая позволяет оценить, как изменяется время выполнения алгоритма или объём используемой памяти в зависимости от размера входных данных. Мы написали подробный гайд по видам сложности, проиллюстрировав их понятными примерами. 🔗 Читать статью 🔗 Зеркало
4 35933Loading...
31
Нет времени объяснять! Осталась всего пара дней до закрытия регистрации на самое масштабное событие в IT-сфере. Уже 17 мая пройдет конференция МТС True Tech Day. Что будет: - Выступления топовых экспертов из МТС, Яндекса, Ozon, Авито и других передовых компаний. - Более 50 докладов про архитектуру, облачные платформы, NLP4Code, вероятностное. программирование, безопасность контейнеров и другое. - 10 часов нетворкинга. - Цифровые зоны и digital-развлечения. - А после – грандиозная вечеринка со звездой. Участвуй онлайн! Регистрируйся прямо сейчас на True Tech Day.
2 6060Loading...
32
❓В каких случаях применяется инициализация нулями? - Статические переменные (static), глобальные и thread_local thread_local int a; // thread_local int b; // global struct Test { static int test; // static }; int Test::test; - Если мы инициализируем default значениями примитивных типов void dunc(int t){} f(int()); - Для явно не инициализированных Си-массивов char a[5] = "123"; // a[3] = a[4] = 0
4 29415Loading...
33
🌟 Выведение размера массива Для std::array размер в общем случае задаётся вручную std::array<int, 2> test{ 2,3 }; Начиная с C++17 можно оставить вывод размера компилятору std::array test{ 2,3 }; Но если необходимо использовать шаблоны, то можно воспользоваться шаблонной магией template<typename T, size_t N> int size(const std::array<T, N>& types) {     return N; }
4 49216Loading...
34
🍔 Библиотека алгоритмов вычислительной геометрии CGAL CGAL — это программный проект с открытым исходным кодом, который обеспечивает легкий доступ к эффективным и надежным геометрическим алгоритмам в форме библиотеки C ++. CGAL используется в различных областях, требующих геометрических вычислений, таких как географические информационные системы, автоматизированное проектирование, молекулярная биология, медицинская визуализация, компьютерная графика и робототехника 👉 Сайт 👉 Github
4 56953Loading...
35
#memes
4 69728Loading...
36
🧨 Как установить, очистить и переключить один бит? ❗️Установка бита - Используется побитовый оператор OR (|), чтобы установить n-й бит number в 1 значение - Стоит помнить, что сдвиг больше, чем на ширину типа, является неопределенным поведением typedef unsigned long ulong; ulong bit_set(ulong number, ulong n) { return number | ((ulong)1 << n); } ❗️Очистка бита - Используется побитовый оператор AND (&) , чтобы установить n-й бит number в 0 значение - Вы должны инвертировать битовую строку с помощью побитового оператора NOT (~) , затем оператор & ulong bit_clear(ulong number, ulong n) { return number & ~((ulong)1 << n); } ❗️Переключение бита - Используйте побитовый оператор XOR (^) для переключения n-го бита number ulong bit_toggle(ulong number, ulong n) { return number ^ ((ulong)1 << n); } ❗️Проверка бита - Чтобы проверить бит, сдвиньте number вправо на n бит , затем воспользуйтесь & bool bit_check(ulong number, ulong n) { return (number >> n)& (ulong)1; }
4 48557Loading...
Photo unavailableShow in Telegram
⁉️Хотите прокачаться в разработке на С++? Ждём вас на открытом практическом уроке «Условные переменные в С++» от OTUS, где мы разберем: — что такое std::condition_variable и какие задачи он решает; — типовые ошибки при его использовании; — что такое spurious wakeup. А также напишем несколько concurrency-примитивов на основе condition_variable. Спикер — ведущий программист с большим международным опытом. ⏰Встречаемся 11 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS! ➡️Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: РЕГИСТРАЦИЯ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqvHHe4m
Mostrar todo...
Photo unavailableShow in Telegram
💸📊 На сколько просели зарплаты в ИТ в 2024 году? Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас. 🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей. 👉 Остальные данные — в статье 👉 Зеркало
Mostrar todo...
😁 3👍 2
Photo unavailableShow in Telegram
#memes
Mostrar todo...
😁 49🔥 10🤔 3👾 2👍 1 1🤩 1💯 1
🍔 Отладочные макросы Отладочные макросы в C++ используются для упрощения процесса отладки и диагностики программного кода Основные отладочные макросы включают assert, static_assert и пользовательские макросы 🍓 assert Макрос assert определён в заголовочном файле <cassert> и используется для проверки логических выражений во время выполнения программы. Если выражение вернёт false, assert завершает выполнение программы и выводит сообщение об ошибке
#include <cassert>

void test(int x) {
    assert(x > 0 && "x must be positive");
    // остальной код функции
}

int main() {
    test(5);  // проходит проверку
    test(-3); // приводит к ошибке во время выполнения
    return 0;
}
🍒 static_assert static_assert введён в C++11 и позволяет проверять условия на этапе компиляции. Это особенно полезно для проверки условий, которые должны выполняться всегда, независимо от состояния программы во время выполнения
#include <type_traits>

template <typename T>
void check() {
    static_assert(std::is_integral<T>::value, "T must be an integral type");
}

int main() {
    check<int>();   // проходит проверку
    check<float>(); // ошибка компиляции: T must be an integral type
    return 0;
}
🫐 Пользовательские отладочные макросы Вы также можете определять собственные макросы для отладки, которые помогут вам выводить дополнительную информацию или выполнять специфические проверки
#include <iostream>

#define DEBUG

#ifdef DEBUG
#define DEBUG_PRINT(x) std::cout << x << std::endl
#else
#define DEBUG_PRINT(x)
#endif

int main() {
    int value = 42;
    DEBUG_PRINT("Value: " << value);
    return 0;
}
Mostrar todo...
👍 6 5
👨‍🎓️ 33 лучших вуза России для будущих программистов 2024-2025 Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему. 🔗 Читать статью 🔗 Зеркало
Mostrar todo...
👍 6👾 3🤔 1🥱 1
Photo unavailableShow in Telegram
#memes
Mostrar todo...
😁 40 2🤔 1
Photo unavailableShow in Telegram
🍔 Библеотека CPR C ++ Requests (CPR) — это простая оболочка для libcurl, вдохновленная отличным проектом Python Requests Простой интерфейс libcurl часто бывает не так прост, и его неправильное использование является распространенным источником ошибок и разочарования. Используя более выразительные языковые возможности C++17 (или C++11 в случае, если вы используете cpr < 1.10.0), эта библиотека передает суть преобразования сетевых вызовов в несколько кратких идиом 👉 Ссылочка
Mostrar todo...
🔥 24👍 7 2
Photo unavailableShow in Telegram
🌳 Ключевого слова final в программах на C++ Заметка об использовании ключевого слова final, о влиянии его на производительность 👉 Ссылка
Mostrar todo...
🤔 14👍 3
Photo unavailableShow in Telegram
#memes
Mostrar todo...
😁 59🥰 5🥱 2 1