std C++11 生成随机数组

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <random>

template <class Iter>
void fill_with_random_int_values(Iter start, Iter end, int min, int max) {
  static std::random_device rd;  // you only need to initialize it once
  static std::mt19937 mte(rd()); // this is a relative big object to create

  std::uniform_int_distribution<int> dist(min, max);
  std::generate(start, end, [&]() { return dist(mte); });
}

int main() {
  std::array<int, 10> a;
  fill_with_random_int_values(a.begin(), a.end(), 0, 1000);
  for (int i : a) std::cout << i << ' ';
  std::cout << '\n';
}

运行测试:Compiler Explore

posted @ 2022-08-03 16:24  山岚2013  阅读(214)  评论(0编辑  收藏  举报