每种数组类型的初始值

时间:2013-10-27 23:34:30

标签: c++ arrays

我有以下问题。创建新数组时,可以插入最初的值。例如int array[12];它将创建一个包含初始值的12个值的数组。例如对于int数组,它将是0的数组。 我已将此数组创建为模板类对象的一部分。 每次我将此数组类型更改为intcharfloatstringdouble时。 如果我将任何此类型数组中的某些值更改为intfloatdouble的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);

但在所有这些情况下,它不适用于任何类型。有人可以帮帮我吗?感谢。

1 个答案:

答案 0 :(得分:2)

这个怎么样?

#include <algorithm>

std::fill_n(array, length, T());

(编辑包括Benjamin Lindley的建议。)

相关问题