> 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/struct.md).

# 数据结构和枚举器

本页将介绍 Vector Helper API 中涉及的所有数据结构和枚举器

## VectorContext, Vector

Vector 对象实例基本数据结构类型，Vector 类型是 VectorContext\* 的简写

#### Syntax

```c
typedef struct _VectorContext
{
	size_t current_element_count;
	size_t last_reserved_element_count;
	size_t max_element_count;
	size_t current_alloc_count;
	size_t current_alloc_memory_size;
	size_t single_element_size;
	void** element;
} VectorContext, *Vector;
```

#### Members

| 成员名                            | 类型       | 描述               |
| ------------------------------ | -------- | ---------------- |
| current\_element\_count        | size\_t  | 当前已存入的元素计数       |
| last\_reserved\_element\_count | size\_t  | 上一次预订的元素计数       |
| max\_element\_count            | size\_t  | 最大可容纳的元素计数       |
| current\_alloc\_count          | size\_t  | 当前内存分配器运行计数      |
| current\_alloc\_memory\_size   | size\_t  | 当前已分配的内存大小（byte） |
| single\_element\_size          | size\_t  | 单个元素的大小（byte）    |
| element                        | void\*\* | 指向元素区块首地址        |

## VectorCountType（Enum）

Vector 对象实例内部计数器类型枚举器

#### Syntax

```c
typedef enum _VectorCountType
{
	kCurrentElementCount,
	kMaxElementCount,
	kCurrentMemoryAllocCount
} VectorCountType;
```

#### Members

| 成员名                      | 值 | 描述             |
| ------------------------ | - | -------------- |
| kCurrentElementCount     | 0 | 当前元素个数计数器      |
| kMaxElementCount         | 1 | 最大元素个数计数器      |
| kCurrentMemoryAllocCount | 2 | 当前内存分配器运行次数计数器 |

#### Macros

| 宏名                                 | 值 | 描述             |
| ---------------------------------- | - | -------------- |
| VCT\_CURRENT\_ELEMENT\_COUNT       | 0 | 当前元素个数计数器      |
| VCT\_MAX\_ELEMENT\_COUNT           | 1 | 最大元素个数计数器      |
| VCT\_CURRENT\_ALLOC\_MEMORY\_COUNT | 2 | 当前内存分配器运行次数计数器 |

## VectorSizeType（Enum） <a href="#vectorsizetype-enum" id="vectorsizetype-enum"></a>

Vector 对象实例大小计数器类型枚举器

#### Syntax <a href="#syntax-2" id="syntax-2"></a>

```
typedef enum _VectorSizeType
{
	kCurrentAllocMemorySize,
	kSingleElementSize,
	kAvailableMemorySize,
	kUsedMemorySize
} VectorSizeType;
```

#### Members <a href="#members-2" id="members-2"></a>

| 成员名                     | 值 | 描述                   |
| ----------------------- | - | -------------------- |
| kCurrentAllocMemorySize | 0 | 已分配内存大小计数器           |
| kSingleElementSize      | 1 | 单个元素大小计数器            |
| kAvailableMemorySize    | 2 | 可用空闲内存大小计数器（Virtual） |
| kUsedMemorySize         | 3 | 已用内存大小计数器（Virtual）   |

#### Macros

| 宏名                                | 值 | 描述                   |
| --------------------------------- | - | -------------------- |
| VST\_CURRENT\_ALLOC\_MEMORY\_SIZE | 0 | 已分配内存大小计数器           |
| VST\_SINGLE\_ELEMENT\_SIZE        | 1 | 单个元素大小计数器            |
| VST\_AVAILABLE\_MEMORY\_SIZE      | 2 | 可用空闲内存大小计数器（Virtual） |
| VST\_USED\_MEMORY\_SIZE           | 3 | 已用内存大小计数器（Virtual）   |
