在C ++中,是否可以直接从另一个数组初始化数组?

时间:2016-01-27 06:31:13

标签: c++ arrays syntax initialization c++14

在C ++中,是否可以直接从另一个初始化内置数组?据我所知,一个人只能有一个数组,然后将每个元素从另一个数组复制/移动到它,这是某种赋值,而不是初始化。

2 个答案:

答案 0 :(得分:4)

这是C++ 11std::array的新功能之一。

std::array <int, 5> a = {1, 2, 3, 4, 5};
std::array <int ,5> b = a;

后者将数组a复制到b

答案 1 :(得分:2)

数组既没有复制构造函数也没有复制赋值运算符。您只能按元素将元素从一个数组复制到另一个元素。

字符数组可以通过字符串文字初始化。或者可以使用标题C函数复制字符串,例如标题strcpy中声明的strncpymemcpy<cstring>

对于其他数组,您可以使用标头std::copy中声明的标准算法std::copy_ifstd::transform<algorithm>

否则,您可以使用标准容器std::arraystd::vector,它允许将该类型的一个对象分配给另一个相同类型的对象,或者从另一个对象创建一个对象。