2013-10-27 54 views
-2

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

我试图让:

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

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

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

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

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

回答

2

这是怎么回事?

#include <algorithm> 

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

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

+0

我要求更多的价值,比那使用的方法。它适用于memset或fill_n完美。但是我需要可以为任何数据类型设置的值。初始值。例如fill_n(array,length,0); 但问题是它不适用于字符串数组。所以我需要一个适用于这些数据类型的值(int,float,string,double,char)。 – armprognew

+0

你在寻找一个同时是int,float,string,double和char的字节序列吗?如果是这样,你不会找到它。 –

+0

是的,保罗,我正在寻找。谢谢你的帮助! – armprognew