TGViewer
Channel Public Channel
С++ задачи и вопросы

С++ задачи и вопросы

@quizcpp

Задачи, тесты и теоретические вопросы по С++

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Subscribers
553
Photos
585
Videos
0
Links
212

Showing posts older than #1482 · Back to latest

Older Posts 20 shown
Post #1479 161
⚙️ std::ranges::chunk_by

std::ranges::chunk_by (C++23) объединяет последовательные элементы диапазона на основе заданного критерия. Это удобно для работы с потоками событий, сжатия одинаковых значений и создания логических блоков данных.

👩‍💻

@quizcpp
  • 👍 2
Post #1477 160
🚫 Антипаттерн недели: Неинициализированные поля в конструкторах

В C++ часто допускается ошибка, когда поля класса не инициализируются в конструкторе. Это может привести к неопределённому поведению, особенно для встроенных типов, таких как int и bool.

✔️ Всегда инициализируйте поля либо в списке инициализации конструктора, либо задавайте значения по умолчанию прямо при объявлении.

👩‍💻

@quizcpp
Post #1476 149
std::min возвращает наименьшее из двух значений. Это удобно для выбора меньшего элемента при сравнении чисел или установлении предела значения.

👩‍💻

@quizcpp
Post #1475 164
Yomm2 — это библиотека на C++17, которая обеспечивает быстрые и открытые мультиметоды. Она позволяет эффективно вызывать методы с несколькими аргументами различных типов и добавлять новые методы к уже существующим классам без необходимости изменять их исходный код.

👩‍💻

@quizcpp
Post #1474 131
⚙️ std::fill

std::fill заполняет указанный диапазон определённым значением, копируя его во все элементы. Это удобно для инициализации контейнеров или обнуления данных.

👩‍💻

@quizcpp
  • 👍 2
Post #1473 132
⚙️ std::iota

std::iota — это алгоритм из библиотеки, который заполняет диапазон значениями, начиная с указанного стартового числа и увеличивая его на 1 для каждого следующего элемента.

Он полезен для генерации простых последовательностей чисел, индексов, номеров строк и тестовых данных без использования ручных циклов.

👩‍💻

@quizcpp
Post #1472 140
⚙️ std::byte

std::byte — это тип данных, предназначенный для работы с сырыми байтами. Он полезен для безопасного управления памятью и бинарными данными.

👩‍💻

@quizcpp
Post #1471 135
⚙️ std::size

std::size возвращает количество элементов в контейнере или массиве. Это удобно для безопасного определения размера без необходимости явно указывать тип.

👩‍💻

@quizcpp
Post #1470 139
⚙️ std::lcm

std::lcm находит наименьшее общее кратное (НОК) двух чисел. Это может быть полезно в задачах, связанных с синхронизацией событий, обработкой дробей и математическими вычислениями.

👩‍💻

@quizcpp
Post #1462 142
⚙️ std::clamp

std::clamp сжимает значение в определённые рамки. Это полезно для проверки чисел, нормализации данных и предотвращения выхода за пределы.

👩‍💻
@quizcpp
  • 👍 1
Post #1461 133
🚫 Антипаттерн недели: Пропуск ключевого слова virtual при наследовании с полиморфизмом в C++

В C++ если в базовом классе не указано ключевое слово virtual, это приводит к тому, что ожидаемый полиморфизм не работает. Методы производного класса не будут вызываться через указатель на базовый класс, если метод не объявлен как virtual.

✔️ Добавляйте virtual в базовые классы и override в производные.

👩‍💻
@quizcpp
  • 👍 2
Post #1460 110
⚙️ std::ssize

std::ssize возвращает размер контейнера в виде знакового числа. Это удобно при итерации, когда необходимо безопасно использовать индексы типа int вместо size_t, особенно в циклах с отрицательными смещениями или при сравнении с -1.

👩‍💻
@quizcpp
  • 👍 1
Post #1459 91
⚙️ std::midpoint

std::midpoint находит среднее значение между двумя числами, избегая при этом переполнения. Это особенно полезно при работе с диапазонами, бинарным поиском и безопасными арифметическими операциями.

👩‍💻
@quizcpp
Post #1458 120
⚙️ std::ranges::chunk_view

std::ranges::chunk_view (C++23) делит диапазон на равные сегменты фиксированной длины. Это удобно для работы с данными блоками, например, при пакетной обработке или создании батчей.

👩‍💻
@quizcpp
Post #1457 104
⚙️ std::launder

std::launder (C++17) применяется для безопасного доступа к объекту после его повторной инициализации в той же области памяти с помощью placement new. Это имеет значение при низкоуровневых операциях, связанных с ручным управлением жизненным циклом объектов.

👩‍💻
@quizcpp
  • 👍 1
Post #1456 113
⚙️ std::unexpected

std::unexpected (хотя и устарел в C++17, но представляет интерес с исторической точки зрения) применяется для установки обработчика для непредусмотренных исключений, которые выбрасываются функциями с noexcept(false) или спецификацией throw(). Это может быть полезно для отладки и управления исключениями в старом коде.

👩‍💻
@quizcpp
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →