std :: generate_n в C ++
std :: generate - это алгоритм STL, который используется для генерации чисел на основе функции генератора, а затем присваивает эти значения элементам в контейнере в диапазоне [first, last).
Функция генератора должна быть определена пользователем, и она вызывается последовательно для присвоения номеров.
Теперь может быть сценарий, в котором мы хотим присвоить значения только первым n элементам, для этого у нас есть другой алгоритм STL std :: generate_n , который имеет следующий синтаксис:
Функция шаблона:
OutputIterator generate_n (сначала OutputIterator, размер n, генератор gen); first: итератор вывода, указывающий на начало контейнера. n: количество элементов, которым необходимо присвоить значение, используя функцию генератора. gen: функция генератора для генерации значений. Возврат: У него нет возвращаемого типа void, такого как std :: generate, но на самом деле он возвращает итератор, указывающий на элемент, следующий за последним элементом чье значение было создано.
// C++ program to demonstrate the use of std::generate_n #include <iostream> #include <vector> #include <algorithm> // Defining the generator function int gen() { static int i = 0; return ++i; } using namespace std; int main() { int i; // Declaring a vector of size 10 vector< int > v1(10); // using std::generate_n std::generate_n(v1.begin(), 10, gen); vector< int >::iterator i1; for (i1 = v1.begin(); i1 != v1.end(); ++i1) { cout << *i1 << " " ; } return 0; } |
Выход:
1 2 3 4 5 6 7 8 9 10
Эта статья предоставлена Мригендрой Сингхом . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.