我有一个语言内置数组,我需要将其元素复制到容器库数组中以进行某些处理。我尝试了几件事,但是似乎没有用。有什么方法可以将一种类型转换为另一种类型?
语言内置数组声明为:
int arr[] = {1,12,343,54,99};
虽然库容器数组声明为:
std::array<int,4> myarray = {4, 26, 80, 14} ;
std :: array在标头<array>
下声明。
对于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::copy
或std::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());