2013-05-29 53 views
1

我接管了一個帶有變量的程序:靜態uint_8t *緩衝區全局聲明,我需要填充,但不是隻有一個重複值。它不一定是太「隨機」,只是完整而不重複。我正在使用此緩衝區在HDD上運行read10 scsi命令測試。我正在使用visual C++ 2012.感謝您的幫助!用隨機值填充一個緩衝區C++

回答

7

如果隨機性沒有太大的關係,你可能會考慮像std::rand了一個方便的算法:

std::generate_n(buffer, BUFFER_SIZE, std::rand); 

的事實,你的緩衝區的元素類型是無符號的手段溢出是安全的。這是一個sample,但我懷疑你的代碼可能有點不同;)。

1

如果你不介意的值是連續的,你可以使用std::iota

#include <numeric> 

std::iota(buffer, buffer + SIZE, 0); 

這將連續值填充它從0

+0

哦,良好的思維開始。 – chris

0
const size_t N = 100; // your number of elements 
for(size_t i = 0; i < N; ++i) 
{ 
    size_t tmp = i % std::limits<uint8_t>::max(); 
    buffer[i] = static_cast<uint_8t>(tmp) 
}