Forwarded from Библиотека задач по C++ | тесты, код, задания
✅ Чек-лист: Линейные структуры данных в C++
Линейные структуры данных — фундамент программирования на C++. Правильный выбор структуры может значительно повысить эффективность вашего кода.
🎯 Векторы (std::vector)
✓ Используйте
✓ Применяйте
✓ Доступ по индексу выполняется за O(1) с помощью оператора []
✓ Используйте at() вместо [] для проверки границ массива
🎯 Списки (std::list)
✓ Отдавайте предпочтение при частых вставках/удалениях в середине
✓ Используйте
✓ Помните, что прямой доступ по индексу невозможен — только итерация
✓ Двунаправленные итераторы позволяют двигаться как вперед, так и назад
🎯 Очереди и стеки (std::queue, std::stack)
✓ Стек (LIFO): используйте
✓ Очередь (FIFO): применяйте
✓ Функция
✓ Обе структуры являются адаптерами и построены на других контейнерах
🎯 Массивы (std::array)
✓ Используйте для данных фиксированного размера, известного на этапе компиляции
✓ Более эффективны чем векторы для неизменяемых данных
✓ Поддерживают STL-алгоритмы (sort, find и др.)
✓ Проверяйте границы с функцией
🤫 Правильный выбор структуры данных может ускорить ваш без изменения алгоритма.
Линейные структуры данных — фундамент программирования на C++. Правильный выбор структуры может значительно повысить эффективность вашего кода.
🎯 Векторы (std::vector)
✓ Используйте
reserve()
для предварительного выделения памяти, когда примерно известен размер✓ Применяйте
push_back()
для добавления элементов и pop_back() для удаления с конца✓ Доступ по индексу выполняется за O(1) с помощью оператора []
✓ Используйте at() вместо [] для проверки границ массива
🎯 Списки (std::list)
✓ Отдавайте предпочтение при частых вставках/удалениях в середине
✓ Используйте
splice()
для эффективного перемещения элементов между списками✓ Помните, что прямой доступ по индексу невозможен — только итерация
✓ Двунаправленные итераторы позволяют двигаться как вперед, так и назад
🎯 Очереди и стеки (std::queue, std::stack)
✓ Стек (LIFO): используйте
push()
для добавления и pop()
для извлечения✓ Очередь (FIFO): применяйте
push()
для добавления и pop()
для извлечения✓ Функция
front()
позволяет посмотреть первый элемент без удаления✓ Обе структуры являются адаптерами и построены на других контейнерах
🎯 Массивы (std::array)
✓ Используйте для данных фиксированного размера, известного на этапе компиляции
✓ Более эффективны чем векторы для неизменяемых данных
✓ Поддерживают STL-алгоритмы (sort, find и др.)
✓ Проверяйте границы с функцией
at()
во избежание ошибок доступа🤫 Правильный выбор структуры данных может ускорить ваш без изменения алгоритма.
Forwarded from Proglib.academy | IT-курсы
Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.
✓ Почему все считают, что программисты — математики
✓ В каких сферах разработки можно вообще не знать математику
✓ Где хватит готовых библиотек, а где придётся разбираться в формулах
✓ Какие области программирования требуют мощного математического бэкграунда
✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science
✓ Топ книг, которые помогут понять и даже полюбить математику
Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
sysconf 2025 — конференция по системному программированию от создателей C++ Russia и DevOops
📅 22 марта в Москве + онлайн
На конференции не будет абстрактных рассуждений — только разбор реальных кейсов, разрезка бинарников, дебаггинг и хардкор.
Доклады, на которые стоит обратить внимание:
→ Компиляторные технологии в верификации аппаратного обеспечения — Константин Владимиров
→ Устройство многопоточного рантайма движков ВКонтакте — Никита Костливцев
→ Генератор случайных процессорных архитектур для обучения системному программированию — Петр Советов
Все выступления — на сайте. Кроме докладов будут дискуссии, нетворкинг, активности и розыгрыши от партнеров.
🎟 Купить билет
Если оплачиваете самостоятельно — промокод
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
📅 22 марта в Москве + онлайн
На конференции не будет абстрактных рассуждений — только разбор реальных кейсов, разрезка бинарников, дебаггинг и хардкор.
Доклады, на которые стоит обратить внимание:
→ Компиляторные технологии в верификации аппаратного обеспечения — Константин Владимиров
→ Устройство многопоточного рантайма движков ВКонтакте — Никита Костливцев
→ Генератор случайных процессорных архитектур для обучения системному программированию — Петр Советов
Все выступления — на сайте. Кроме докладов будут дискуссии, нетворкинг, активности и розыгрыши от партнеров.
🎟 Купить билет
Если оплачиваете самостоятельно — промокод
CPPPROGLIB
дает скидку 15%. Но выгоднее участвовать за счет компании! В статье есть аргументы, почему это полезно не только вам, но и работодателю.Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца
Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»
➡️ Читайте в статье
Спойлер:дело не в навыках, а в психологии успеха
🐸 Библиотека шарписта
Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»
Спойлер:
Please open Telegram to view this post
VIEW IN TELEGRAM
😎 Выпуск Qt Creator 16: новые возможности и улучшения
14 марта 2025 года состоялся релиз новой версии интегрированной среды разработки Qt Creator 16, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. В этой версии представлены значительные улучшения, которые делают процесс разработки более удобным и эффективным.
🌶️ Основные нововведения:
1. Оптимизация времени запуска
- Добавлены асинхронные методы для определения ABI и загрузки кэша шрифтов на Windows.
- Ускорено получение информации о Python-пакетах.
2. Улучшения для работы с QML и CMake
- Добавлена переменная
- Внедрена поддержка функции
3. Новые настройки и интерфейс
- Добавлена категория "SDK" для управления параметрами Android, QNX, MCU и Windows App SDK.
- Переработаны настройки тулкитов, что сделало их более компактными и удобными.
4. Улучшения для CMake-проектов
- Упрощена структура дерева компонентов проекта.
- Повышена производительность определения изменений внешней конфигурации CMake.
5. Интеграция с инструментами анализа
- Улучшена поддержка Axivion для статического анализа кода.
- Добавлена возможность настройки coverage-тестирования с использованием Coco.
6. Исправление проблем
- Решена проблема с чисткой временных файлов на разделах с файловой системой FAT.
- Добавлена поддержка отладки на устройствах с iOS 17+.
14 марта 2025 года состоялся релиз новой версии интегрированной среды разработки Qt Creator 16, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. В этой версии представлены значительные улучшения, которые делают процесс разработки более удобным и эффективным.
🌶️ Основные нововведения:
1. Оптимизация времени запуска
- Добавлены асинхронные методы для определения ABI и загрузки кэша шрифтов на Windows.
- Ускорено получение информации о Python-пакетах.
2. Улучшения для работы с QML и CMake
- Добавлена переменная
QML_IMPORT_PATH
для CMake при использовании QML Language Server. - Внедрена поддержка функции
Diagnostic.CodeDescription
в протоколе LSP. 3. Новые настройки и интерфейс
- Добавлена категория "SDK" для управления параметрами Android, QNX, MCU и Windows App SDK.
- Переработаны настройки тулкитов, что сделало их более компактными и удобными.
4. Улучшения для CMake-проектов
- Упрощена структура дерева компонентов проекта.
- Повышена производительность определения изменений внешней конфигурации CMake.
5. Интеграция с инструментами анализа
- Улучшена поддержка Axivion для статического анализа кода.
- Добавлена возможность настройки coverage-тестирования с использованием Coco.
6. Исправление проблем
- Решена проблема с чисткой временных файлов на разделах с файловой системой FAT.
- Добавлена поддержка отладки на устройствах с iOS 17+.
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
📉🤦 152 000 уволенных в IT за год: кому это помогло?
Корпоративная бензопила снова в деле: каждый месяц 2 миллиона американцев теряют работу из-за сокращений. Но действительно ли это помогает компаниям?
🔗 Читать статью
Корпоративная бензопила снова в деле: каждый месяц 2 миллиона американцев теряют работу из-за сокращений. Но действительно ли это помогает компаниям?
🔗 Читать статью
📚 Мини-справочник по основным типам данных C++
Делимся компактным справочником по основным типам данных в C++. Сохраняйте себе на будущее.
🔢 Целочисленные типы
• int — 4 байта, от -2,147,483,648 до 2,147,483,647
• short — 2 байта, от -32,768 до 32,767
• long — 4 байта (Windows) или 8 байт (Unix)
• long long — 8 байт, от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
Модификаторы:
• unsigned — только положительные числа, удваивает верхний предел
• signed — со знаком (по умолчанию)
🔡 Символьные типы
• char — 1 байт, обычные символы ASCII
• wchar_t — 2 или 4 байта, широкие символы (Unicode)
• char16_t — 2 байта, символы UTF-16 (C++11)
• char32_t — 4 байта, символы UTF-32 (C++11)
🔄 Числа с плавающей точкой
• float — 4 байта, точность ~7 цифр, диапазон ±3.4e±38
• double — 8 байт, точность ~15 цифр, диапазон ±1.7e±308
• long double — 8-16 байт, точность ≥ double, диапазон зависит от компилятора
🧮 Логический тип
• bool — 1 байт, значения: true или false
🗄 Производные типы
• Массивы:
• Указатели:
• Ссылки:
• Строки:
• C-строки:
• std::string:
🔄 Автоматическое определение типа (C++11)
🧩 Тип Void
• void — отсутствие типа (для функций без возвращаемого значения)
• void* — указатель на данные любого типа
🔍 Как узнать размер типа
💡 Полезные советы
1. Используйте **size_t для индексации и размеров
2. Для целых чисел с гарантированным размером используйте типы из
3. Для денежных расчетов избегайте float из-за погрешностей округления
Библиотека C/C++ разработчика #буст
Делимся компактным справочником по основным типам данных в C++. Сохраняйте себе на будущее.
🔢 Целочисленные типы
• int — 4 байта, от -2,147,483,648 до 2,147,483,647
• short — 2 байта, от -32,768 до 32,767
• long — 4 байта (Windows) или 8 байт (Unix)
• long long — 8 байт, от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
Модификаторы:
• unsigned — только положительные числа, удваивает верхний предел
• signed — со знаком (по умолчанию)
unsigned int counter = 100;
short temperature = -15;
long long population = 7800000000;
🔡 Символьные типы
• char — 1 байт, обычные символы ASCII
• wchar_t — 2 или 4 байта, широкие символы (Unicode)
• char16_t — 2 байта, символы UTF-16 (C++11)
• char32_t — 4 байта, символы UTF-32 (C++11)
char letter = 'A';
wchar_t unicodeChar = L'Ф';
char16_t utf16Char = u'Ж';
🔄 Числа с плавающей точкой
• float — 4 байта, точность ~7 цифр, диапазон ±3.4e±38
• double — 8 байт, точность ~15 цифр, диапазон ±1.7e±308
• long double — 8-16 байт, точность ≥ double, диапазон зависит от компилятора
float price = 19.99f; // 'f' суффикс для float
double pi = 3.14159265359;
long double precise = 1.23456789123456789L; // 'L' суффикс
🧮 Логический тип
• bool — 1 байт, значения: true или false
bool isActive = true;
bool hasPermission = false;
🗄 Производные типы
• Массивы:
int numbers[5];
• Указатели:
int* ptr;
• Ссылки:
int& ref = value;
• Строки:
• C-строки:
char str[] = "Hello";
• std::string:
std::string text = "Hello";
🔄 Автоматическое определение типа (C++11)
auto x = 10; // int
auto y = 3.14; // double
auto z = "Hello"; // const char*
🧩 Тип Void
• void — отсутствие типа (для функций без возвращаемого значения)
• void* — указатель на данные любого типа
🔍 Как узнать размер типа
cout << "Размер int: " << sizeof(int) << " байт" << endl;
💡 Полезные советы
1. Используйте **size_t для индексации и размеров
2. Для целых чисел с гарантированным размером используйте типы из
<cstdint>
: int32_t, uint64_t3. Для денежных расчетов избегайте float из-за погрешностей округления
Библиотека C/C++ разработчика #буст
😮💨Устали вручную разруливать зависимости в C++ проектах? Время автоматизировать процесс! 🕒💻
Пакетные менеджеры Conan и vcpkg позволяют легко управлять библиотеками, устанавливать зависимости и ускорять сборку. Разберем, как это работает, на открытом уроке.
Упростите себе жизнь: научитесь использовать пакетные менеджеры, чтобы писать код, а не разбираться с проблемами сборки.
Спикер Денис Злобин — старший инженер-программист в Astra Linux, опытный наставник разработчиков.
➡️Встречаемся 20 марта в 20:00 мск, разберем всё на практике! Участники получат скидку на большое обучение по разработке на С++.
Регистрация: https://clck.ru/3HjpJy
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Пакетные менеджеры Conan и vcpkg позволяют легко управлять библиотеками, устанавливать зависимости и ускорять сборку. Разберем, как это работает, на открытом уроке.
Упростите себе жизнь: научитесь использовать пакетные менеджеры, чтобы писать код, а не разбираться с проблемами сборки.
Спикер Денис Злобин — старший инженер-программист в Astra Linux, опытный наставник разработчиков.
➡️Встречаемся 20 марта в 20:00 мск, разберем всё на практике! Участники получат скидку на большое обучение по разработке на С++.
Регистрация: https://clck.ru/3HjpJy
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Устроиться бэкендером в Яндекс за несколько дней
12–17 апреля устраиваем Week Offer Backend. Ищем крутых бэкендеров с опытом работы от 3 лет на C++, Python, Java/Kotlin или Go, готовых работать в офисном или гибридном режиме в России.
До 9 апреля решите задачи в Контесте, 12–13 апреля пройдите два собеседования, а 13–17 апреля познакомьтесь с командами и получите офер.
В мероприятии участвует 6 команд: Яндекс Пэй, Яндекс ID, Яндекс Плюс, Яндекс Сплит, Яндекс Сейвы, Яндекс 360. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.
Узнать подробности и зарегистрироваться можно здесь.
Реклама. ООО "Яндекс". ИНН 7736207543
12–17 апреля устраиваем Week Offer Backend. Ищем крутых бэкендеров с опытом работы от 3 лет на C++, Python, Java/Kotlin или Go, готовых работать в офисном или гибридном режиме в России.
До 9 апреля решите задачи в Контесте, 12–13 апреля пройдите два собеседования, а 13–17 апреля познакомьтесь с командами и получите офер.
В мероприятии участвует 6 команд: Яндекс Пэй, Яндекс ID, Яндекс Плюс, Яндекс Сплит, Яндекс Сейвы, Яндекс 360. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.
Узнать подробности и зарегистрироваться можно здесь.
Реклама. ООО "Яндекс". ИНН 7736207543
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🧩💊 Алгоритмическая самоуспокоенность: как мы разучились думать своей головой
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
🔗 Подробнее в статье
🐸 Библиотека джависта
Каждый день мы сталкиваемся с бесконечным потоком информации, которая не просто наполняет наш день, а управляет нашими мыслями. Социальные сети, алгоритмы и вечная гонка за вниманием приводят к тому, что мы забываем, как думать собственной головой.
Это не просто влияет на настроение, но и на способность анализировать информацию, принимать решения и, главное, не становиться частью системы манипуляций.
Если вы хотите вернуться к осознанному подходу в восприятии мира и научиться фильтровать контент, то эта тема точно для вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
Проверь насколько хорошо ты знаешь Си !
Ответишь — пройдешь на продвинутый курс «Программист С» от OTUS по специальной цене.
На курсе ты освоишь практические навыки программирования на С, научишься решать задачи уровня Middle+.
Курс доступен в рассрочку.
Не забудь забрать промокод на скидку
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM