-2

我有以下问题。创建新数组时,可以插入初始值。例如int array[12];,它将创建一个包含 12 个值的数组,其中包含初始值。例如对于 int 数组,它将是 0 的数组。我已经创建了这个数组作为模板类对象的一部分。每次我将此数组类型更改为int, char,float或. 如果我已将任何此类数组中的某些值更改为 5 代表、和. 为 'c' 表示字符。并以“字符串”为字符串。如何对所有这些对象使用相同的代码将它们全部设置为初始值?stringdoubleintfloatdouble

我试着做:

memset(array, 0, sizeOf(T)*13);

或者

memset(array, '\0', sizeOf(T)*13);

或者

memset(array, NULL, sizeOf(T)*13);

或者

memset(array, "", sizeOf(T)*13);

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

4

1 回答 1

2

那这个呢?

#include <algorithm>

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

(编辑包括本杰明林德利的建议。)

于 2013-10-27T23:38:58.433 回答