Публикации по теме 'cplusplus'


Обработка исключений в C++
Исключения возникают, когда программа выполняется ненормально из-за условий, не зависящих от программы, таких как нехватка памяти или ошибки ввода-вывода. Порядок, в котором появляются обработчики catch, важен, потому что обработчики для данного блока try проверяются в порядке их появления. После того как найден соответствующий обработчик catch, последующие обработчики не проверяются. В результате обработчик catch с многоточием (…) должен быть последним обработчиком для своего блока..

Серия C++: Perfect Forwarding, Lvalue, Rvalue
Lvalue, Rvalue: В C++ lvalue и rvalue — это основные определения того, где можно использовать выражение. Если его можно использовать только справа от уравнения, это называется rvalue, в противном случае, если его можно использовать с обеих сторон, это называется lvalue. Примеры lvalue: — Имена переменных — Элементы массива — Результаты вызова функций — Выражения индексов — Выражения доступа к членам Примеры rvalue: — литералы — результаты большинства операторов — вызовы функций,..

C++20 Concurrency: часть 3 request_stop и stop_token для std::jthread
В этой статье мы исследуем новейшую функцию C++20, std::jthread которая позволяет сигнализировать об остановке или отмене уже выполняющегося потока в определенной ситуации . Снова цитируя первую строку из ссылки cpp: класс jthread представляет собой один поток выполнения… и может быть отменен/остановлен в определенных ситуациях .

C++: указатели против ссылок?
Я знаю, что это относится к ОСНОВАМ, но программисты во всем мире неправильно понимали его на протяжении десятилетий. Это моя попытка прояснить это. Ссылки — это псевдонимы для существующей переменной. Если мы скомпилируем код, мы не получим 2 переменные. ссылка существует только в нашем исходном коде. Ссылка - это именно то, на что это похоже. Это способ сослаться на «существующую переменную», в отличие от указателей, которым можно присвоить значение null. Ссылки всегда должны..

Ежедневные кусочки C++ | std::filesystem: манипуляции с файлами
Ежедневная часть C++ № 242. Манипулирование файлами с использованием библиотеки std::filesystem. Помимо исследования файловой системы, std::filesystem предлагает типичные операции по манипулированию файлами. Каждая операция предлагает два варианта: один выбрасывает другой, который возвращает потенциальную ошибку в качестве выходного параметра. В следующем примере используются различные версии операций, чтобы минимизировать обработку ошибок. #include <filesystem> #include..

Хотя заявление считается вредным
Недавно я редактировал хорошо структурированную и понятную программу, написанную программистом на C, который обычно перебирает связанные списки, используя следующую идиому: int print_shopping_list(listitem_t *list, int max_price) { int found_count = 0; listitem_t *item = list; while (item != NULL) { if (item->price <= max_price) { printf("Buy %s priced at %d pence", item->name, item->price); found_count++; } item = item->next; }..

Ежедневный бит(е) C++ | Ограниченные подмассивы
Ежедневный бит (е) C ++ # 175, Распространенная проблема на собеседованиях: ограниченные подмассивы. Сегодня мы рассмотрим распространенную проблему интервью C++: ограниченные подмассивы. Учитывая массив целых чисел и два граничных значения, A и B , вернуть количество (непрерывных) подмассивов, для которых значение A является минимум, а значение B — максимум подмассива. Например, для массива {1,2,3,4,3} и границ [2,4] существует только два допустимых подмассива: {..