Vec*_*ihi 0 c++ arrays io vector
我想创建一个静态大小(2mb)的容器(在c ++/visual studio 2008中),可能是一个数组或一个向量,并用一些随机整数填充它.
有一个简单的方法吗?
谢谢.
我想过做那样的事情:
int x[1048576];
for (int i=1; i<1048576; i++)
{
int r = rand()%i;
x[i] = r;
}
Run Code Online (Sandbox Code Playgroud)
但我认为让一个for循环看起来有点奇怪?这就是为什么我甚至要求有一个标准的程序来完成这项工作.
只需使用以下内容:
#include <ctime>
#include <vector>
#include <cstdlib>
#include <algorithm>
...
// Create array
std::vector<int> arr(SIZE);
// std::array<int, SIZE> arr; // for a static array;
// Seed randomness
std::srand(std::time(NULL));
// Randomize values
std::generate(arr.begin(), arr.end(), &std::rand);
Run Code Online (Sandbox Code Playgroud)
像普通数组一样使用数组:
for(int i = 0; i != arr.size(); ++i)
cout << arr[i] << endl;
Run Code Online (Sandbox Code Playgroud)
并且不需要delete[]或任何其他因为vector为您管理这个.
或者,您可以创建一个"随机" iterator,它将产生随机值.这将允许您在创建时创建和填充向量,结束结果将如下所示:std::vector<int> arr(rand_iterator(SIZE), rand_iterator());但它更多的工作.
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |