TGViewer
Channel Public Channel
Senior C++ Developer

Senior C++ Developer

@seniorcpp

Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Subscribers
11.6K
Photos
1.5K
Videos
3
Links
640

Showing posts older than #2178 · Back to latest

Older Posts 19 shown
Post #2177 2.18K
std::nexttoward()

Функция std::nexttoward() возвращает следующее представимое значение после x в направлении y. Эта функция ведет себя аналогично функции std::nextafter(), но с потенциально более точным y.

Функция принимает два аргумента:

x — базовое значение
y — значение, к которому приближается возвращаемое значение

Если оба аргумента равны, функция возвращает y, преобразованное к типу возвращаемого значения.

Возвращаемое значение:

Следующее представимое значение после x в направлении y.
Если x — это наибольшее конечное значение, представимое в типе, и результат бесконечен или не представим, возникает ошибка переполнения диапазона.

#для_продвинутых
Post #2175 2.33K
std::duration

Шаблонный класс std::duration в С++ представляет собой интервал времени. Он состоит из двух частей:

— Количество периодов (tick count) типа Rep.
— Период тика (tick period), который представляет собой дробное число секунд, приходящееся на один тик.

Стандартная библиотека C++ предоставляет ряд предопределенных типов интервалов времени, таких как seconds, minutes, hours, days, weeks, months и years. Эти типы имеют следующие значения периода тика (2 картинка).

#для_начинающих
Post #2173 2.13K
std::span

std::span — это шаблонный класс, который представляет собой непрерывное представление последовательности объектов. Он был введен в стандарт С++20 и предоставляет безопасный и эффективный способ доступа к элементам такой последовательности.

Тип std::span имеет два шаблонных параметра:

T — тип элементов последовательности.
Extent — количество элементов последовательности. Если этот параметр не указан, то он считается равным dynamic_extent, что означает, что количество элементов не известно заранее.

#для_продвинутых
Post #2171 1.98K
std::promise

std::promise — это шаблонный класс, который предоставляет механизм для связи потока, который обещает предоставить значение в будущем (поставщик), с потоком, который ожидает получение этого значения (потребитель).

Когда создается объект std::promise, он создает связанный объект std::future. Объект std::future предоставляет интерфейс для получения значения или исключения, которое будет предоставлено объектом std::promise.

Поставщик использует методы set_value() или set_exception() для установки значения или исключения, которое будет предоставлено объекту std::promise. Потребитель использует метод get() объекта std::future для получения значения или исключения, которое было установлено поставщиком.

#для_продвинутых
Post #2170 1.9K
std::error_code

std::error_code — это класс в стандартном C++, который используется для представления ошибок. Он содержит два компонента: код ошибки, представляющий собой целое число, и категорию ошибки, представляющую собой строку.

Код ошибки представляет собой платформо-зависимый код, который возвращается операционной системой при возникновении ошибки. Категория ошибки представляет собой более общий код, который может быть использован для классификации ошибок.

#для_продвинутых
Post #2167 1.76K
std::logic_error

std::logic_error — это класс исключений в языке программирования C++, который используется для представления логических ошибок в программе. Логические ошибки — это ошибки, которые могут быть обнаружены до выполнения программы, например, нарушение логических предусловий или классовых инвариантов.

Класс std::logic_error является производным от класса std::exception, который является базовым классом для всех исключений в C++. Класс std::logic_error имеет конструктор, который принимает строку в качестве аргумента. Эта строка используется для описания ошибки.

#для_продвинутых
Post #2165 1.79K
std::future::get()

Метод std::future::get() в C++ используется для получения результата асинхронного вычисления, связанного с объектом std::future.

Метод std::future::get() блокирует текущий поток до тех пор, пока асинхронное вычисление не будет завершено. После завершения вычисления метод std::future::get() возвращает результат вычисления.

Если асинхронное вычисление было прервано или завершилось с ошибкой, метод std::future::get() бросает исключение std::future_error.

#для_продвинутых
Post #2163 1.73K
std::fstream

std::fstream — это класс из стандартной библиотеки С++, который представляет собой поток данных, связанный с файлом. Он может использоваться для чтения, записи или одновременного чтения и записи из файла.

Для использования класса std::fstream необходимо подключить заголовочный файл fstream.

Объект класса std::fstream создается с помощью конструктора, которому передается имя файла и режим открытия. Режим открытия определяет, как будет использоваться поток.

#для_продвинутых
Post #2161 1.71K
std::scoped_lock

std::scoped_lock — это класс-обертка над одним или несколькими мьютексами, который обеспечивает удобный механизм владения мьютексами в стиле RAII. При создании объекта std::scoped_lock он пытается захватить владение мьютексами, которые ему передаются.

std::scoped_lock был добавлен в стандарт C++ в версии 17. Он является заменой устаревшего класса std::lock_guard.

#для_продвинутых
Post #2159 1.76K
Функция std::atomic_load

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

Синтаксис:
template <class T>
T atomic_load(const volatile atomic<T>* obj) noexcept;

template <class T>
T atomic_load(const atomic<T>* obj) noexcept;


#для_продвинутых
Post #2158 1.84K
➡️ Использование std::shared_ptr для Умного Управления Памятью

std::shared_ptr — это умный указатель, который позволяет нескольким указателям совместно владеть одним объектом.

• Когда последний std::shared_ptr, указывающий на объект, удаляется, объект также уничтожается.
Post #2156 1.87K
➡️ Улучшение многопоточности с использованием std::shared_mutex и std::shared_lock

Использование std::shared_mutex и std::shared_lock позволяет эффективно управлять многопоточным доступом к ресурсам, повышая производительность за счет одновременного чтения и блокирования только при записи.

Это особенно полезно для сценариев, где чтение данных происходит чаще, чем запись.
Post #2155 1.93K
➡️ Ассоциативность оператора массива

• A[8] - это то же самое, что и *(A + 8). Так как операция сложения ассоциативна, она может быть переписана как *(8 + A), что синонимично ..... 8[A]

Никто не говорил, что это должно быть обязательно полезно
Post #2153 1.99K
Указатели с ключевыми словами const и volatile

Ключевые слова const и volatile изменяют то, как обрабатываются указатели. const указывает, что данные по указателю не могут быть изменены после инициализации; volatile указывает, что значение может быть изменено действиями, отличными от тех, которые указаны в пользовательском приложении.

volatile полезно для объявления объектов в общей памяти, к которым могут обращаться несколько процессов или для глобальных областей данных.
Post #2151 2K
Алгоритм find_if и find_if_not

Алгоритм find_if возвращает итератор к первому элементу в диапазоне [first, last), для которого pred(Uniary Function) возвращает true. Если такой элемент не найден, функция возвращает последний элемент.

Алгоритм find_if_not возвращает итератор к первому элементу в диапазоне [first, last), для которого pred(Uniary Function) возвращает false. Если такой элемент не найден, функция возвращает последний элемент.
Post #2150 2.07K
#вопросы_с_собеседований
Что дают разные модификаторы при наследовании?

Ответ:
Изменяют зону видимости членов базового класса.
При private наследовании protected и public члены становятся private. При protected наследовании public становится protected. А при public ничего не изменяется.
Post #2148 2.12K
C++, ping и traceroute

Ping — утилита для проверки целостности и качества соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса

Смотреть статью
Post #2147 2.8K
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 →