我尝试将C数组赋值给C++ STD::数组。
我如何做到这一点,以最干净的方式,不制作不必要的副本等
当做
intx[8];
std::数组<;国际,8>;Y=X;
我得到一个编译器错误:“没有合适的构造函数存在”
没有从普通数组到std::array
的转换,但您可以将元素从一个复制到另一个:
std::copy(std::begin(X)、std::end(X)、std::begin(Y));
下面是一个工作示例:
#包括<;iostream>;
#包括<;阵列>;
#包括<;算法>;//复制
int main(){
int X[8]={0,1,2,3,4,5,6,7};
标准::数组<;int,8>;Y;
std::copy(std::begin(X)、std::end(X)、std::begin(Y));
for(int i:Y)
标准::cout<;<;i<;“”;
标准::cout<;<;'\n';
返回0;
}