3

C++98 では、std::copy を使用して、反復子アダプターを使用して入力ストリームから std::vector にコピーできます。新しい C++11 乱数ライブラリから同様のことを行う方法はありますか?

私ができるようにしたいのは、次のようなものです。

std::uniform_int_distribution<int> dist(0, 1024);
std::vector<int> col;
std::copy(std::adapter_type(dist), std::adapter_type(dist, 128), std::back_inserter(col));

「終了」反復子には、ベクトルに挿入される数値の数を制限する何らかの方法が必要です。そして、はい、ディストリビューションを機能させるにはある種のエンジンが必要であることは知っています。

4

1 に答える 1

8

あなたが望むgenerate_n(実際には新しいものではありません):

std::generate_n(std::back_inserter(col), 128, std::bind(dist, gen));

(gen適切な乱数エンジンは次のとおりです。)

于 2013-07-23T23:42:10.373 に答える