跳转至

vector

vector 模块提供向量容器,支持动态数组的元素添加、访问与容量管理。

Class Summary

OHOS::Graphic::Vector

提供动态数组容器,支持按索引访问、尾部增删、容量管理等操作

  • 构造Vector(uint16_t capacity = 1)Vector(const Vector<T>& value)
  • 成员函数

    接口名称 功能简述
    Vector 带容量参数构造 Vector 对象
    Vector 拷贝构造 Vector 对象
    Front 获取首元素引用
    Back 获取末尾元素引用
    PushBack 在尾部追加元素
    PopBack 移除末尾元素
    Clear 清空所有元素
    Begin 获取首元素指针
    End 获取末尾元素之后的位置指针
    IsEmpty 判断容器是否为空
    Size 获取元素数量
    Capacity 获取当前容量
    ReSize 调整元素数量
    Erase 按索引移除元素
    Swap 交换两个 Vector 对象的内容
    operator[] 按索引访问元素
    operator= 赋值运算符
  • 使用包含头文件#include "gfx_utils/vector.h"

  • 声明头文件middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils/vector.h
  • 公有运算符T& operator[](uint16_t index)void operator=(const Vector<T>& value)
  • 继承关系:HeapBase
  • 嵌套类型:无
  • 模板形参typename T(元素类型,无默认实参)

Functions

OHOS::Graphic::Vector

Vector

Vector(uint16_t capacity = 1)

功能说明

  • 核心用途:构造 Vector 对象,指定初始容量
  • 使用场景:需要创建动态数组容器时调用
  • 对象构造后即进入可用状态,可直接调用成员函数

入参

名称 参数类型 详细说明 约束取值范围
capacity uint16_t 初始容量,缺省值为 1 1 ~ 65535

Vector

Vector(const Vector<T>& value)

功能说明

  • 核心用途:拷贝构造 Vector 对象,从另一个 Vector 复制所有元素
  • 使用场景:需要基于已有 Vector 创建副本时调用
  • 拷贝后新对象与原对象内容独立,互不影响

入参

名称 参数类型 详细说明 约束取值范围
value const Vector& 入参只读引用,源 Vector 对象 有效的 Vector 对象引用

Front

T& Front()

功能说明

  • 核心用途:获取容器首元素的引用
  • 使用场景:需要访问或修改第一个元素时调用
  • 当容器为空时调用此函数属于未定义行为

返回值

  • 返回类型:T&

返回首元素的引用

返回值 触发场景
T& 容器非空时返回首元素引用;容器为空时行为未定义

Back

T& Back()

功能说明

  • 核心用途:获取容器末尾元素的引用
  • 使用场景:需要访问或修改最后一个元素时调用
  • 当容器为空时调用此函数属于未定义行为

返回值

  • 返回类型:T&

返回末尾元素的引用

返回值 触发场景
T& 容器非空时返回末尾元素引用;容器为空时行为未定义

PushBack

void PushBack(const T& data)

功能说明

  • 核心用途:在容器尾部追加一个元素
  • 使用场景:需要向动态数组末尾添加数据时调用
  • 当元素数量达到当前容量时,容器自动扩容(容量翻倍)

入参

名称 参数类型 详细说明 约束取值范围
data const T& 入参只读引用,待追加的元素 有效的 T 类型对象

PopBack

void PopBack()

功能说明

  • 核心用途:移除容器末尾元素
  • 使用场景:需要从动态数组末尾删除数据时调用
  • 当容器为空时调用此函数不执行任何操作

Clear

void Clear()

功能说明

  • 核心用途:清空容器中所有元素
  • 使用场景:需要重置容器内容但保留容量时调用
  • 调用后元素数量变为 0,容量不变

Begin

T* Begin() const

功能说明

  • 核心用途:获取指向容器首元素的指针
  • 使用场景:需要遍历容器元素时获取起始迭代位置
  • 返回指针可用于区间遍历 [Begin, End)

返回值

  • 返回类型:T*

返回首元素指针

返回值 触发场景
T* 指向首元素的指针;容器为空时指针指向已分配但未初始化元素的起始位置

End

const T* End() const

功能说明

  • 核心用途:获取指向容器末尾元素之后位置的指针
  • 使用场景:需要遍历容器元素时获取终止迭代位置
  • 与 Begin 配合使用,构成 [Begin, End) 遍历区间

返回值

  • 返回类型:const T*

返回末尾之后位置的指针

返回值 触发场景
const T* 指向末尾元素之后的位置,不指向有效元素

IsEmpty

bool IsEmpty() const

功能说明

  • 核心用途:判断容器是否为空
  • 使用场景:在访问元素前检查容器状态,避免未定义行为
  • 调用此函数不修改对象状态

返回值

  • 返回类型:bool

返回容器是否为空

返回值 触发场景
true 容器中无元素
false 容器中有元素

Size

uint16_t Size() const

功能说明

  • 核心用途:获取容器中当前元素的数量
  • 使用场景:需要获知容器大小或进行边界判断时调用
  • 调用此函数不修改对象状态

返回值

  • 返回类型:uint16_t

返回元素数量

返回值 触发场景
uint16_t 当前元素数量,范围 0 ~ 65535

Capacity

uint16_t Capacity() const

功能说明

  • 核心用途:获取容器当前容量
  • 使用场景:需要了解容器已分配存储空间大小或评估是否即将触发扩容时调用
  • 容量不小于元素数量

返回值

  • 返回类型:uint16_t

返回当前容量

返回值 触发场景
uint16_t 当前已分配存储空间可容纳的元素数量,范围 1 ~ 65535

ReSize

uint16_t ReSize(uint16_t size)

功能说明

  • 核心用途:调整容器元素数量
  • 使用场景:需要缩减或确认元素数量时调用
  • 仅当请求大小不超过当前容量时生效,否则返回当前元素数量不变

入参

名称 参数类型 详细说明 约束取值范围
size uint16_t 目标元素数量 0 ~ 当前容量值

返回值

  • 返回类型:uint16_t

返回调整后的元素数量

返回值 触发场景
uint16_t 调整成功时返回目标数量;目标数量超过容量时返回当前元素数量

Erase

void Erase(uint16_t index)

功能说明

  • 核心用途:按索引移除指定位置的元素
  • 使用场景:需要删除容器中特定位置的元素时调用
  • 移除后后续元素向前移动一位

入参

名称 参数类型 详细说明 约束取值范围
index uint16_t 待移除元素的索引 0 ~ Size() - 1;超出范围时不执行操作

Swap

void Swap(Vector<T>& other)

功能说明

  • 核心用途:交换两个 Vector 对象的内容(元素、容量、内部指针)
  • 使用场景:需要高效交换两个容器内容时调用
  • 交换后双方对象的内容互换

入参

名称 参数类型 详细说明 约束取值范围
other Vector& 入参引用,待交换的另一个 Vector 对象 有效的 Vector 对象引用

operator[]

T& operator[](uint16_t index)

功能说明

  • 核心用途:按索引访问容器中指定位置的元素
  • 使用场景:需要通过下标随机访问元素时调用
  • 索引越界时行为未定义

入参

名称 参数类型 详细说明 约束取值范围
index uint16_t 元素索引 0 ~ Size() - 1

返回值

  • 返回类型:T&

返回指定位置元素的引用

返回值 触发场景
T& 索引有效时返回元素引用;索引越界时行为未定义

operator=

void operator=(const Vector<T>& value)

功能说明

  • 核心用途:将另一个 Vector 的内容赋值给当前对象
  • 使用场景:需要用一个 Vector 对象覆盖另一个时调用
  • 当当前容量不足以容纳源对象元素时,重新分配内部存储

入参

名称 参数类型 详细说明 约束取值范围
value const Vector& 入参只读引用,源 Vector 对象 有效的 Vector 对象引用