我有以下问题。创建新数组时,可以插入最初的值。例如int array[12];
它将创建一个包含初始值的12个值的数组。例如对于int数组,它将是0的数组。
我已将此数组创建为模板类对象的一部分。
每次我将此数组类型更改为int
,char
,float
,string
或double
时。
如果我将任何此类型数组中的某些值更改为int
,float
和double
的5,该怎么办?要'c'代表char。并为字符串“字符串”。如何为所有这些对象使用相同的代码将它们全部设置为初始值?
我试图制作:
memset(array, 0, sizeOf(T)*13);
或
memset(array, '\0', sizeOf(T)*13);
或
memset(array, NULL, sizeOf(T)*13);
或
memset(array, "", sizeOf(T)*13);
但在所有这些情况下,它不适用于任何类型。有人可以帮帮我吗?感谢。
答案 0 :(得分:2)
这个怎么样?
#include <algorithm>
std::fill_n(array, length, T());
(编辑包括Benjamin Lindley的建议。)