在<uint8_t> <char> c++ 中将常量向量转换为常量向量

Cast/Convert const vector<uint8_t> to const vector<char> in c++

本文关键字:常量 向量 gt lt uint8 转换 char c++      更新时间:2023-10-16

在 c++ 中将const vector<uint8_t>转换/转换为const vector<char>的最高性能方法是什么?

这应该有效(未经测试的代码(:

std::vector<uint8_t> v1 = // something;
const char *p = (const char *) v1.data();
std::vector<char> v2(p, p + v1.size());

现在你有两个向量;一个是uint8_t,一个是chars

一次内存分配,一次调用memcpy

[后来:@Tito指出向量没有(指针,大小(构造函数(如string/span/string_view(重写了示例代码以使用(迭代器,迭代器(构造函数]