在C ++中,是否可以直接从另一个初始化内置数组?据我所知,一个人只能有一个数组,然后将每个元素从另一个数组复制/移动到它,这是某种赋值,而不是初始化。
答案 0 :(得分:4)
这是C++ 11
中std::array的新功能之一。
std::array <int, 5> a = {1, 2, 3, 4, 5};
std::array <int ,5> b = a;
后者将数组a
复制到b
。
答案 1 :(得分:2)
数组既没有复制构造函数也没有复制赋值运算符。您只能按元素将元素从一个数组复制到另一个元素。
字符数组可以通过字符串文字初始化。或者可以使用标题C函数复制字符串,例如标题strcpy
中声明的strncpy
,memcpy
,<cstring>
。
对于其他数组,您可以使用标头std::copy
中声明的标准算法std::copy_if
,std::transform
,<algorithm>
。
否则,您可以使用标准容器std::array
或std::vector
,它允许将该类型的一个对象分配给另一个相同类型的对象,或者从另一个对象创建一个对象。