2013-10-27 94 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