> For the complete documentation index, see [llms.txt](https://chaoses-ib.gitbook.io/directory-opus/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh.md).

# Vector

**Vector** 对象旨在解决 ActiveX 脚本中数组支持的一些不足之处。一些语言对数组的支持比其它语言更好，但这些语言并不一致，有些语言（如 *JScript*）具有 Opus 无法访问的互不兼容的数组。因此，任何接受或返回类似数组变量的 Opus 脚本对象都将使用（或优先使用）**Vector** 而不是数组。

**Vector** 对象大部分可以作为数组的直接替代品。它们是 *集合*，因此可以枚举，或者通过索引访问（例如 **Vector(4)** 访问第五个元素）。它们还有一些辅助方法，使操作它们比操作数组更容易。

请注意，在 *JScript* 中，您可以使用方括号（就像数组一样）或圆括号（就像它是函数参数一样）访问元素。在其它语言（如 *VBScript*）中，您只能使用圆括号。

您可以使用 [**DOpusFactory**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dopusfactory.zh.md)**.Vector** 方法创建新的 **Vector**。

| 属性名称     | 返回类型   | 描述                                                                                |
| -------- | ------ | --------------------------------------------------------------------------------- |
| capacity | *int*  | 返回 **Vector** 的容量（它可以在不重新分配内存的情况下容纳的元素数量）。这与它当前容纳的元素数量不同，即使容量较大，它当前容纳的元素数量也可能为 0。 |
| count    | *int*  | 返回 **Vector** 当前容纳的元素数量。                                                          |
| empty    | *bool* | 如果 **Vector** 为空，则返回 **True**，否则返回 **False**。                                     |
| length   | *int*  | **count** 的同义词。                                                                   |
| size     | *int*  | **count** 的同义词。                                                                   |

| 方法名称            | **参数**                                                              | 返回类型      | 描述                                                                                                                                                                                                                                                                                                                                                   |
| --------------- | ------------------------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| append          | <p><<strong>Vector</strong>:from><br>\<int:start><br>\<int:end></p> | *none*    | <p>将另一个 <strong>Vector</strong> 的值复制到此 <strong>Vector</strong> 的末尾，同时保留现有的值。如果没有提供 <em>start</em> 和 <em>end</em>，则将附加整个 <strong>Vector</strong> - 否则，只附加指定的元素。</p><p>除了 <strong>Vector</strong> 对象之外，您还可以将 <em>集合</em> 传递给此方法，并将集合的内容复制到 <strong>Vector</strong> 的末尾。<br>在 <em>JScript</em> 中，您可以将标准数组传递给此方法以将数组复制到 <strong>Vector</strong> 的末尾。</p> |
| assign          | <p><<strong>Vector</strong>:from><br>\<int:start><br>\<int:end></p> | *none*    | <p>将另一个 <strong>Vector</strong> 的值复制到此 <strong>Vector</strong>。如果没有提供 <em>start</em> 和 <em>end</em>，则将复制整个 <strong>Vector</strong> - 否则，只复制指定的元素。</p><p>除了 <strong>Vector</strong> 对象之外，您还可以将 <em>集合</em> 传递给此方法，并将集合的内容复制到 <strong>Vector</strong>。</p><p>在 <em>JScript</em> 中，您可以将标准数组传递给此方法以将数组复制到 <strong>Vector</strong>。</p>                   |
| back            | *none*                                                              | *variant* | 返回 **Vector** 中的最后一个元素。                                                                                                                                                                                                                                                                                                                              |
| clear           | *none*                                                              | *none*    | 清除 **Vector** 的内容。                                                                                                                                                                                                                                                                                                                                   |
| erase           | \<int:index>                                                        | *none*    | 删除指定索引处的元素。                                                                                                                                                                                                                                                                                                                                          |
| exchange        | <p>\<int:index1><br>\<int:index2></p>                               | *none*    | 交换两个指定元素的位置。                                                                                                                                                                                                                                                                                                                                         |
| front           | *none*                                                              | *variant* | 返回 **Vector** 中的第一个元素。                                                                                                                                                                                                                                                                                                                               |
| insert          | <p>\<int:index><br>\<variant:value></p>                             | *none*    | 在指定位置插入提供的 value。                                                                                                                                                                                                                                                                                                                                    |
| pop\_back       | *none*                                                              | *none*    | 删除 **Vector** 的最后一个元素。                                                                                                                                                                                                                                                                                                                               |
| push\_back      | \<variant:value>                                                    | *none*    | 将提供的 value 添加到 **Vector** 的末尾。                                                                                                                                                                                                                                                                                                                       |
| reserve         | \<int:capacity>                                                     | *none*    | <p>在 <strong>Vector</strong> 中为指定数量的元素预留空间（增加其 <strong>capacity</strong>，尽管元素的 <strong>count</strong> 保持不变）。</p><p>请注意，<strong>Vector</strong> 会动态增长 - 您不必专门预留或调整它们的大小。但是，如果您想向 <strong>Vector</strong> 添加大量元素，则预先为它们预留空间可能会更有效。</p>                                                                                                                 |
| resize          | \<int:size>                                                         | *none*    | 将 **Vector** 调整为指定数量的元素。**Vector** 新大小之后的任何现有元素都将被删除。                                                                                                                                                                                                                                                                                                |
| reverse         | *none*                                                              | *none*    | 反转 **Vector** 持有的元素的顺序。                                                                                                                                                                                                                                                                                                                              |
| shrink\_to\_fit | *none*                                                              | *none*    | 将 **Vector** 的容量缩减到它当前容纳的元素数量。                                                                                                                                                                                                                                                                                                                       |
| sort            | *none*                                                              | *none*    | 对 **Vector** 的内容进行排序。字符串和数字按字母顺序和数字顺序排序 - 其它元素按类型分组，但没有按任何特定顺序排序。                                                                                                                                                                                                                                                                                    |
| unique          | *none*                                                              | *int*     | 从 **Vector** 中删除除一个之外的所有重复元素。返回删除的元素数量。                                                                                                                                                                                                                                                                                                              |
