如何将 std::array 转换为 std::vector?

12

我需要将一个std::array转换为std::vector,但是我找不到快速完成它的方法。以下是示例代码:

 std::array<char,10> myData={0,1,2,3,4,5,6,7,8,9};

现在我需要创建一个向量,例如:

std::vector<char> myvector;

如何用数组值初始化它是最快的方法?


好问题,但为什么数组的类型是char而初始化列表使用数字呢? - R Yoda
1
@RYoda 我想要一个可以容纳在char内的数据数组,因此没有必要定义消耗更多内存的int数组。 - mans
1
@mans 可能应该使用 int8_t - Pablo H
4个回答

26

您可以使用取迭代器作为参数的 std::vector 构造函数

使用范围 [first, last) 的内容构造容器。

例如:

std::array<char,10> myData = {0,1,2,3,4,5,6,7,8,9};
std::vector<char> myvector(myData.begin(), myData.end());

6

只是为了变化一下:

std::vector<char> myvector(std::begin(myData), std::end(myData);

3
std::vector<char> myvector { myData.begin(), myData.end() };

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接