The Wayback Machine - https://web.archive.org/web/20180207044841/http://ja.cppreference.com:80/w/cpp/algorithm/generate
名前空間
変種
操作

std::generate

提供: cppreference.com
< cpp‎ | algorithm

 
 
アルゴリズムライブラリ
機能します
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を非改変
Original:
Non-modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
シーケンス動作を変更する
Original:
Modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
操作を仕切る
Original:
Partitioning operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(ソートされた範囲で)ソート操作
Original:
Sorting operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
バイナリ検索操作(ソート範囲で)
Original:
Binary search operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(ソートされた範囲で)操作を設定します
Original:
Set operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
ヒープ操作
Original:
Heap operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
最小値/最大値操作
Original:
Minimum/maximum operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
数値演算
Original:
Numeric operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Cライブラリ
Original:
C library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Defined in header <algorithm>
template<class ForwardIt, class Generator >
void generate( ForwardIt first, ForwardIt last, Generator g );
範囲内の各要素[first, last)与えられた関数オブジェクトによって生成された値を代入しg.
Original:
Assigns each element in range [first, last) a value generated by the given function object g.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

目次

[編集]パラメータ

first, last -
生成する要素の範囲
Original:
the range of elements to generate
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
g - generator function object that will be called.

The signature of the function should be equivalent to the following:

Ret fun();

The type  Ret must be such that an object of type ForwardIt can be dereferenced and assigned a value of type  Ret. ​

型の要件
-
ForwardItForwardIterator

の要求を満足しなければなりません。

[編集]値を返します

(なし)

[編集]複雑性

まさにstd::distance(first, last)g()および割り当ての呼び出しが.
Original:
Exactly std::distance(first, last) invocations of g() and assignments.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]可能な実装

template<class ForwardIt, class Generator>void generate(ForwardIt first, ForwardIt last, Generator g){while(first != last){*first++= g();}}

[編集]

次のコードの用途が乱数のベクトルを塗りつぶします
Original:
The following code uses fills a vector with random numbers:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <algorithm>#include <iostream>#include <cstdlib>   int main(){std::vector<int> v(5); std::generate(v.begin(), v.end(), std::rand);// Using the C function rand()   std::cout<<"v: ";for(auto iv: v){std::cout<< iv <<" ";}std::cout<<"\n";}

出力:

v: 52894 15984720 41513563 41346135 51451456

[編集]参照

要素の範囲を特定の値を割り当てます
Original:
assigns a range of elements a certain value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数テンプレート)[edit]
関数のNアプリケーションの結果を保存します
Original:
saves the result of N applications of a function
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数テンプレート)[edit]
close