2013-07-09 34 views
-4

夥計們我有一個數組xd [2] [10000]就像那個現在我 我想運行循環從0到10000 現在我想,當我= 0 xd數組的值從0到10000變爲0 下次i = 1時xd [0] [1]到xd [0] [10000]的值從xd [0] [i] = 2變爲1時相似[ 2]到xd [0] [10000]變爲2等我想使用memset函數爲此,所以你們可以幫我爲它的代碼。 相似xd [1] [i]也 可以通過增加xd [0] [i] = i和xd [1] [i] = i輕鬆地做到這一點,我會得到相同的結果,但我知道我不需要,我想這對其他程序所以,請memset的函數只如何用memset設置2D數組的特定列

+0

不要-1如果你能幫忙,請發表評論 – rightguy

+0

每個數組元素的_type_是什麼?因爲memset()用__bytes__填充,所以它不會像'int'那樣用'0'之外的值來做你想要的。 – Blastfurnace

+0

long long是數組類型 – rightguy

回答

2

如何:

for (int i = 0; i < 10000; i++) 
    xd[0][i] = i; 

無需memset


至於你的問題被標記 C++標準庫中有許多不錯的algorithms,其中包括一個叫std::iota將做什麼上面呢,但在更短的代碼:

std::iota(std::begin(xd[0]), std::end(xd[0]), 0); 
+0

正如我所說我想使用memset函數只看到我的帖子我知道這種方法我不需要這個我想要它的具體程序,但不想在這裏發佈整個程序 – rightguy

+0

@AlokSrivastava然後調用'memset'只爲具體的價值?你所做的和我的代碼相同,但是你想用一種更無效的方法來實現它......首先你將所有的值設置爲零,然後你想用'1'覆蓋所有的值,然後你想要用'2'等覆蓋除兩個以外的所有內容。這是很多不需要的覆蓋。 –

+0

memset比你寫的或我在做什麼更慢? – rightguy