> For the complete documentation index, see [llms.txt](https://smallso.gitbook.io/vector/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://smallso.gitbook.io/vector/apis/enum.md).

# 元素快速枚举器

本页将介绍与元素快速枚举器相关的 Vector Helper API

## vector\_helper\_enum\_element

快速枚举和比较指定 Vector 对象实例中从指定起始至最后一个元素

#### Syntax

```c
bool vector_helper_enum_element
(
	VectorContext* vector_object_context, 
	size_t* element_start_index,
	const void* element_value, 
	size_t element_value_size
);
```

#### Parameters

| 参数名                     | 类型           | 必选   | 描述                     |
| ----------------------- | ------------ | ---- | ---------------------- |
| vector\_object\_context | Vector       | True | 指定 Vector 对象实例描述符      |
| element\_start\_index   | size\_t\*    | True | 指定保存枚举起始元素索引号的变量       |
| element\_value          | const void\* | True | 指向需要与枚举元素比较的值缓冲区       |
| element\_value\_size    | size\_t      | True | 需要与枚举元素比较的值缓冲区大小（byte） |

#### Return Value

类型：`bool`

描述：在快速枚举过程中，若被枚举元素比较成功则返回 `True`，反之返回 `False`。

#### Remarks

参数 `element_start_index` 指向变量的值会跟随此函数的元素枚举过程而变化。

参数 `element_value_size` 的值（byte）应小于等于指定 Vector 对象实例单个元素大小（byte），否则此函数将失败。

一个设计良好的应用程序应确保参数 `element_value_size` 的值（byte）等于指定 Vector 对象实例单个元素的大小（byte），同时应遵循类似如下的代码逻辑：

{% code title="C" %}

```c
int element_value = 10;
for(size_t element_index; vector_helper_enum_element(..., &element_index, 
    &element_value, sizeof(element_value)); element_index++)
{
    printf("enum element index = %zd\n", element_index);
}
```

{% endcode %}
