From 9c9a1b5f77a02b6028c7e6f06a5ac356808ab0e0 Mon Sep 17 00:00:00 2001 From: Gregory Lirent Date: Wed, 17 Aug 2022 16:20:06 +0300 Subject: [PATCH] Update page '2.1. vtype_array' --- 2.1. vtype_array.md | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/2.1. vtype_array.md b/2.1. vtype_array.md index 1b92ee5..987af41 100644 --- a/2.1. vtype_array.md +++ b/2.1. vtype_array.md @@ -38,13 +38,40 @@ - `void array_push_back(vtype_array* x, T value)` - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. - - Добавляет полученное значение `value` в конец последовательности элементов контейнера. В случае, если производится попытка добавить значение, с несравнимым типом относительно типа, которым был инициализирован контейнер, находящийся в области памяти `x` (см [1.1. Система типов](https://gogs.lirent.ru/lirent/libcdsb/wiki/1.1.+%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0+%D1%82%D0%B8%D0%BF%D0%BE%D0%B2)), будет вызван системный вызов `abort()`; -- `bool array_countof(vtype_array* x, T value)` -- `bool array_remove(vtype_array* x, T value)` + - Добавляет полученное значение `value` в конец последовательности элементов контейнера. В случае, если производится попытка добавить значение, с несравнимым типом относительно типа, которым был инициализирован контейнер, находящийся в области памяти `x` (см. [1.1. Система типов](https://gogs.lirent.ru/lirent/libcdsb/wiki/1.1.+%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0+%D1%82%D0%B8%D0%BF%D0%BE%D0%B2)), будет вызван системный вызов `abort()`. +- `size_t array_countof(vtype_array* x, T value)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Возвращает количество элементов, равных `value` (см. [1.1. Система типов](https://gogs.lirent.ru/lirent/libcdsb/wiki/1.1.+%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0+%D1%82%D0%B8%D0%BF%D0%BE%D0%B2)). +- `int array_remove(vtype_array* x, T value)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Возвращает `0`, в случае успешного удаления элемента, или `-1` в случае, если значение `value` не было найдено. - `bool in_array(vtype_array* x, T value)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Возвращает `true` если значение `value` есть в контейнере, в противном случае, возвращает `false` - `int array_pop(vtype_array* x, T value, void* data, CallbackT callback)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Принимает произвольные пользовательские данные `data` + - Принимает указатель на функцию-callback (см. начало текущего документа) + - Вызывает callback-функцию c первым найденным значением, равным `value`, в качестве аргумента. После чего удаляет найденный объект из контейнера. + - Возвращает -1, если значение равное `value` не было найдено внутри контейнера. В противном случае возвращает значение возвращенное callback-функцией. - `int array_find(vtype_array* x, T value, void* data, CallbackT callback)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Принимает произвольные пользовательские данные `data` + - Принимает указатель на функцию-callback (см. начало текущего документа) + - Вызывает callback-функцию c первым найденным значением, равным `value`, в качестве аргумента. + - Возвращает -1, если значение равное `value` не было найдено внутри контейнера. В противном случае возвращает значение возвращенное callback-функцией. - `int array_rfind(vtype_array* x, T value, void* data, CallbackT callback)` + - Принимает указатель на область памяти, содержащую инициализированное значение **vtype_array** `x`. + - Принимает числовое значение, указатель на C-строку или указатель на область памяти, содержащую один из контейнеров, поставляемых вместе с данным проектом. + - Принимает произвольные пользовательские данные `data` + - Принимает указатель на функцию-callback (см. начало текущего документа) + - Вызывает callback-функцию c последним найденным значением, равным `value`, в качестве аргумента. + - Возвращает -1, если значение равное `value` не было найдено внутри контейнера. В противном случае возвращает значение возвращенное callback-функцией. ### [include/extra/array.h](https://gogs.lirent.ru/lirent/libcdsb/src/master/include/extra/array.h)