在C++中,是否可以直接从另一个初始化内置数组?据我所知,只能有一个数组,然后从另一个数组复制/移动每个元素到它,这是某种分配,而不是初始化。在C++中,是否可以直接从另一个数组初始化数组?
2
A
回答
2
数组既没有复制构造函数也没有复制赋值运算符。您只能按元素将元素从一个数组复制到另一个元素。
字符数组可以通过字符串文字初始化。或者可以使用标准C函数来复制字符串,如标头<cstring>
中声明的strcpy
,strncpy
,memcpy
。
有关可以用于std::copy
,std::copy_if
,std::transform
在头<algorithm>
声明例如标准算法其他阵列。
否则,您可以使用标准容器std::array
或std::vector
,它们允许将一个类型的对象分配给另一个相同类型的对象或从另一个对象创建一个对象。
+0
那么,答案基本上没有? – Lingxi
+2
@Lingxi对于内置数组,答案是否定的,唯一的方法是将一个数组放入一个结构体中(这种方式设计为std :: array),并从另一个同类型的对象中创建一个结构体对象包含一些应该被复制的数组。 –
4
这是的C++ 11
的新功能之一。
std::array <int, 5> a = {1, 2, 3, 4, 5};
std::array <int ,5> b = a;
后者复制阵列a
成b
。
相关问题
- 1. 初始化一个数组数组
- 2. 是否可以在C++的成员初始值设定项列表中初始化一个数组?
- 3. 为什么int *数组不能直接初始化,但char *数组可以?
- 4. c#:初始化一个DateTime数组
- 5. C++如何初始化一个数组
- 6. C - 如何初始化一个预初始化的二维数组数组?
- 7. 我们是否需要在Java中初始化一个数组?
- 8. 在initWithNibName中初始化一个数组
- 9. 在一个函数初始化数组
- 10. 这是一个数组初始化吗?
- 11. 用数组或初始化初始化一个NSMutableArray初始化
- 12. C#初始化数组
- 13. C数组初始化
- 14. C++数组初始化
- 15. C++数组初始化
- 16. C++数组初始化
- 17. 数组c初始化
- 18. 初始化数组C++
- 19. C++数组初始化
- 20. 数组成员是否可以自我初始化?
- 21. 在C++中初始化对象数组
- 22. C# - 我可以使用数组初始值设定从另一个建立一个字节数组吗?
- 23. 使用MKL函数初始化C++数组是否是一个好主意?
- 24. 从数组初始化Func
- 25. 从数组初始化QVector
- 26. 从数组初始化
- 27. 从C数组初始化ublas向量
- 28. 从c#初始化javascript数组值#
- 29. 初始化使用另一个数组(C#)某种类型的数组
- 30. 是否可以从Pascal中的数组创建一个数组?
你读过http://stackoverflow.com/questions/20519992/array-declaration-and-initialization-in-c11? – VolAnd
您是否关心内置数组la'int n [5]'和/或'std :: array <>'s? –
@TonyD我的意思是内置阵列。 – Lingxi