如何将int [4]转换为std :: array ? [重复]

问题描述 投票:0回答:1

我有一个语言内置数组,我需要将其元素复制到容器库数组中以进行某些处理。我尝试了几件事,但是似乎没有用。有什么方法可以将一种类型转换为另一种类型?

语言内置数组声明为:

int arr[] = {1,12,343,54,99};

虽然库容器数组声明为:

std::array<int,4> myarray = {4, 26, 80, 14} ;

std :: array在标头<array>下声明。

c++ arrays stl
1个回答
4
投票

对于C ++ 20,这就是std::to_array的目的。

int arr[] = {1,12,343,54};
std::array<int,4> myarray = std::to_array(arr); // could use "auto myarray" instead

在C ++ 20之前,如果元素类型不可复制或复制成本高,则应使用std::copystd::move

int arr[] = {1,12,343,54};
std::array<int, 4> myarray;
std::copy(arr, arr+4, myarray.begin());
// or
std::copy(std::begin(arr), std::end(arr), myarray.begin());
© www.soinside.com 2019 - 2024. All rights reserved.