STL: generate ,geterate_n

用来生成元素,并填充到一个序列中

generate:

1 template <class ForwardIterator, class Generator>
2   void generate ( ForwardIterator first, ForwardIterator last, Generator gen )
3 {
4   while (first != last) {
5     *first = gen();
6     ++first;
7   }
8 }

Generator gen生成器,是一个不接受参数,且有返回参数的函数,first和last是生成的范围。

generate_n:

 void generate_n (OutputIterator first, Size n, Generator gen);

first插入起始位置,n插入元素个数,gen元素生成器、

 1 #include<iostream>
 2 #include<vector>
 3 #include<algorithm>
 4 #include<time.h>
 5 #include <iterator>
 6 using namespace std;
 7
 8 int nextNum() {
 9     static int n = 1;
10     return n++;
11
12 }
13
14 class Range_generate{
15     private:
16         int m_Value;
17     public:
18         Range_generate(int value){m_Value=value;}
19         int operator()(){
22             return m_Value++;}
23 };
24
25 int main(){
26     for(int i=0;i<5;i++)
27         cout<<nextNum()<<" ";
28     srand((unsigned int) time(NULL));
29     vector<int> array(10,4);
30     cout<<endl;
31     int length=array.size();
32     cout<<length<<endl;
33     generate(array.begin(),array.end(),[]{return rand()%10;});
34     for(vector<int>::iterator ptr=array.begin();ptr!=array.end();){
35         cout<<*ptr<<" ";
36         ptr++;
37     }
38     cout<<endl;
39     generate(array.begin(),array.end(),Range_generate(1));
40     ostream_iterator<int> screen(cout," ");
41     copy(array.begin(),array.end(),screen);
42     system("pause");
43     return 0;
44 }
时间: 2024-10-25 21:01:03

STL: generate ,geterate_n的相关文章

An overview of time series forecasting models

An overview of time series forecasting models 2019-10-04 09:47:05 This blog is from: https://towardsdatascience.com/an-overview-of-time-series-forecasting-models-a2fa7a358fcb What is this article about? This article provides an overview of the main m

STL algorithm算法generate和generate_n(22)

今后的stl算法部分就不贴cpluplus的原文了,简要的介绍为主. generate原型: std::generate template <class ForwardIterator, class Generator> void generate (ForwardIterator first, ForwardIterator last, Generator gen); 该函数是使用gen函数产生的值填充范围内元素的值. 其行为类似如下: 1 2 3 4 5 6 7 8 template &l

STL: fill,fill_n,generate,generate_n

fill Assigns the same new value to every element in a specified range. template<class ForwardIterator, class Type> void fill( ForwardIterator _First, ForwardIterator _Last, const Type& _Val ); fill_n Assigns a new value to a specified number of

stl源码剖析 详细学习笔记 算法总览

//****************************基本算法***************************** /* stl算法总览,不在stl标准规格的sgi专属算法,都以 *加以标记 算法名称              算法用途         质变                   所在文件 accumulate          元素累计            否                   <stl_numeric.h> adjacent_differenc

C++之STL总结精华笔记

一.一般介绍 STL(StandardTemplate Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++Standard Library)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分.该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法.为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性. 从逻辑层次来看,在STL中体现了泛型化程序设计的思想(genericprogramming),引入

stl使用例子

S ample of STLSTL 范例(一)容器部分Vector-------------------------------------------1Deque--------------------------------------------------20List---------------------------------------------------38Set-----------------------------------------------------66M

C++ STL 整理

一.一般介绍 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分.该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法.为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性. 从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming

STL中的algorithm

STL中的algorithm #include<algorithm>中的泛函算法,需要添加头文件. 搜索算法:find() .search() .count() .find_if() .search_if() .count_if()  分类排序:sort() .merge()  删除算法:unique() .remove()  生成和变异:generate() .fill() .transformation() .copy()  关系算法:equal() .min() .max() eg: s

STL学习小结

STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些"容器"有list, vector,set,map等,STL也是算法和其它一些组件的集合.这里的"容器"和算法的集合指的是世界上非常多聪明人非常多年的杰作.是C++标准库的一个重要组成部分,它由Stepanov and Lee等人最先开发,它是与C++差点儿同一时候開始开发的:一開