std::generate
提供: cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
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.
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:
The type Ret must be such that an object of type ForwardIt can be dereferenced and assigned a value of type Ret. | |||||||||
Type requirements | |||||||||||
-ForwardIt must meet the requirements of ForwardIterator .
|
[編集] 値を返します
(なし)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 複雑
まさに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.
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.
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"; }
Output:
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. (関数テンプレート) | |
関数の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. (関数テンプレート) |