c++ - 获得一个字节的随机性

标签 c++ memory random

<分区>

Possible Duplicate:
What is the most random function in C++?

在 C++ 中,这样安全吗:

int main() {
srand(time(0));
unsigned char arr[10];
for(int i=0; i <sizeof(arr); ++i)
    arr[i] = (unsigned char)rand();
}

有没有更好的方法以独立于平台的方式随机填充字节数组?如果失败了,有没有更好的方法在 Windows 上执行此操作? (我知道 rand() 不是一个很好的 PRNG,我只是用它作为例子)。

谢谢!

最佳答案

使用 boost.random 怎么样? ?它使用的生成器可以传递给 std::generate 以填充您的数组,它与平台无关且仅包含 header 。我会提供一个代码示例,但目前没有可用的提升安装。

编辑:如前所述:在 C++0x(即将发布的标准)中,您可以使用 tr1::random,它本质上只是成为标准 C++ 库一部分的 boost 库。

关于c++ - 获得一个字节的随机性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729471/

相关文章:

algorithm - 随机算法模仿

c++ - 我需要访问一个小文本文件的完全随机行,并在 C++ 中的另一个文本文件中导入同一行

c++ - 为什么在输入数字后跟字符时 cin.fail() 不返回 false?

java - GSON 对象 (RESTful api)

php - 为什么我的内存使用逐渐增加?

multithreading - 我可以限制 Haskell 中每个函数/monad/线程的内存使用吗?

linux - Linux 中 mmap 物理内存的用户空间中的 memcpy 性能不佳

android - 如果在设备而非服务器上生成,UUID4 有多独特?

c++ - 定义放置 C 字符串的位置

c++ - 如何解决 0-1 背包算法的这些变体?