可以使用 vector 的成员函数 data() 来获取指向 vector 中第一个元素的指针,然后将它转换为 unsigned char* 类型,这样就可以像普通数组一样使用了。同时,可以使用 vector 的成员函数 size() 获取 vector 中元素的个数,从而确定数组的长度。

示例代码:

#include <vector>

int main() {
    std::vector<unsigned char> vec = {0x01, 0x02, 0x03, 0x04};
    unsigned char* arr = vec.data();  // 获取指向 vector 中第一个元素的指针
    int len = vec.size();             // 获取 vector 中元素的个数,即数组长度

    // 使用数组
    for (int i = 0; i < len; i++) {
        arr[i] += 1;
    }

    return 0;
}

注意,使用这种方式将 vector 转换为普通数组后,普通数组的长度是固定的,不能再像 vector 一样动态添加或删除元素。如果需要动态修改数组长度,可以使用动态内存分配函数如 malloc()realloc() 来创建和调整数组大小。


原文地址: http://www.cveoy.top/t/topic/nOgq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录