Публикации по теме '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] существует только два допустимых подмассива: {..