C++ Primer 学习中。。。

简单记录下我的学习过程 (代码为主)

全部容器适用

fill(b,e,v)             //[b,e)   填充成v

fill_n(b,n,v)           //[b,b+n) 填充成v

generate(b,e,p)         //[b,e)   依照p方法填充

generate_n(b,n,p)       //[b,b+n) 依照p方法填充



/**------http://blog.csdn.net/u010579068------**/
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<list>
#include<deque>
#include<ctime>
#include<algorithm>
using namespace std; /*****************************************
//全部容器适用
fill(b,e,v) //[b,e) 填充成v
fill_n(b,n,v) //[b,b+n) 填充成v
generate(b,e,p) //[b,e) 依照p方法填充
generate_n(b,n,p) //[b,b+n) 依照p方法填充 *****************************************/
/**---------------------------------------------------------------------------------- ----------------------------------------------------------------------------------**/
/*************************************************************************************
std::fill 全部排序容器适用 algorithm
--------------------------------------------------------------------------------------
template < class ForwardIterator, class T >
void fill ( ForwardIterator first, ForwardIterator last, const T& value ); //eg:
template < class ForwardIterator, class T >
void fill ( ForwardIterator first, ForwardIterator last, const T& value )
{
while (first != last) *first++ = value;
}
*************************************************************************************/ /*************************************************************************************
std::fill_n 全部排序容器适用 algorithm
--------------------------------------------------------------------------------------
template < class OutputIterator, class Size, class T >
void fill_n ( OutputIterator first, Size n, const T& value ); //eg:
template < class OutputIterator, class Size, class T >
void fill_n ( OutputIterator first, Size n, const T& value )
{
for (; n>0; --n) *first++ = value;
}
*************************************************************************************/ /*************************************************************************************
std::generate 全部排序容器适用 algorithm
--------------------------------------------------------------------------------------
template <class ForwardIterator, class Generator>
void generate ( ForwardIterator first, ForwardIterator last, Generator gen ); //eg:
template <class ForwardIterator, class Generator>
void generate ( ForwardIterator first, ForwardIterator last, Generator gen )
{
while (first != last) *first++ = gen();
}
*************************************************************************************/ /*************************************************************************************
std::generate_n 全部排序容器适用 algorithm
--------------------------------------------------------------------------------------
template <class OutputIterator, class Size, class Generator>
void generate_n ( OutputIterator first, Size n, Generator gen ); //eg:
template <class OutputIterator, class Size, class Generator>
void generate_n ( OutputIterator first, Size n, Generator gen )
{
for (; n>0; --n) *first++ = gen();
}
*************************************************************************************/ // function generator:
int RandomNumber ()
{
return (rand()%100);
} // class generator:
struct c_unique
{
int current;
c_unique()
{
current=0;
}
int operator()()
{
return ++current;
}
} UniqueNumber; int current(0);
int Unique_Number ()
{
return ++current;
} int main()
{
vector<int> myvector (8); // myvector: 0 0 0 0 0 0 0 0 fill (myvector.begin(),myvector.begin()+4,5); // myvector: 5 5 5 5 0 0 0 0
fill (myvector.begin()+3,myvector.end()-2,8); // myvector: 5 5 5 8 8 8 0 0 cout << "myvector contains:";
for (vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it; cout << endl;
/**---------------------------------------------------------------------------------**/
deque<int> mydeque (8,10); // mydeque: 10 10 10 10 10 10 10 10 fill_n (mydeque.begin(),4,20); // mydeque: 20 20 20 20 10 10 10 10
fill_n (mydeque.begin()+3,3,33); // mydeque: 20 20 20 33 33 33 10 10 cout << "mydeque contains:";
for (deque<int>::iterator it=mydeque.begin(); it!=mydeque.end(); ++it)
cout << " " << *it; cout << endl;
/**---------------------------------------------------------------------------------**/ srand ( unsigned ( time(NULL) ) ); // vector<int> myvector (8);
vector<int>::iterator it; generate (myvector.begin(), myvector.end(), RandomNumber); cout << "myvector contains:";
for (it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it; generate (myvector.begin(), myvector.end(), UniqueNumber); cout << "\nmyvector contains:";
for (it=myvector.begin(); it!=myvector.end(); ++it)
cout << " " << *it; cout << endl;
/**---------------------------------------------------------------------------------**/ int myarray[9]; generate_n (myarray, 9, Unique_Number); cout << "myarray contains:";
for (int i=0; i<9; ++i)
cout << " " << myarray[i]; cout << endl; return 0;
}
/******
Output:
myvector contains: 5 5 5 8 8 8 0 0
mydeque contains: 20 20 20 33 33 33 10 10
myvector contains: 64 12 31 25 35 67 20 6
myvector contains: 1 2 3 4 5 6 7 8
myarray contains: 1 2 3 4 5 6 7 8 9 ******/

STL_算法_填充新值(fill、fill_n、generate、generate_n)的更多相关文章

  1. cb41a_c++_STL_算法_填充新值fill_generate

    cb41a_c++_STL_算法_填充新值fill_generatefill(b,e,v)fill_n(b,n,v),填充n个vgenerate(b,e,p)generate_n(b,n,p) gen ...

  2. 填充整个区间(fill,fill_n,generate和generate_n)

    fill 将value值填充整个区间,不能为OutputIterator,因为fill会用到first和last,outputIterator无法做相等的测试 template <class F ...

  3. STL: fill,fill_n,generate,generate_n

    fill Assigns the same new value to every element in a specified range. template<class ForwardIter ...

  4. C++ fill fill_n generate generate_n

    #include <iostream>#include <algorithm>#include <vector>#include <list>#incl ...

  5. STL_算法_中使用的函数对象

    写在前面: STL算法中的 函数对象的功能: (1).都是提供一种比较的函数,比较相邻的左右两个值的 相等/大小 等的关系, (2).返回值都是bool :该返回值 貌似是指明 遍历元素是否还要继续往 ...

  6. STL_算法_查找算法(binary_search、includes)

    C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) 全部容器适用(O(log(n)))     已序区间查找算法 binary_search             //二分查 ...

  7. STL_算法_查找算法(lower_bound、upper_bound、equal_range)

    C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) //全部容器适用(O(log(n)))    已序区间查找算法 lower_bound()        //找第一个符合的 ...

  8. STL_算法_查找算法(find、find_if)

    C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) find . find_if /**********************线性查找O(n) find(); find_if ...

  9. STL_算法_逆转(reverse,reverse_copy)

    C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) //全部容器适用 reverse(b,e)        //逆转区间数据 reverse_copy(b,e,b2) /** ...

随机推荐

  1. 329 Longest Increasing Path in a Matrix 矩阵中的最长递增路径

    Given an integer matrix, find the length of the longest increasing path.From each cell, you can eith ...

  2. ios9 -3dtouch 手势添加到app上

    模拟器实现3dtouch参考以下网站: http://my.oschina.net/u/2340880/blog/511509 - (BOOL)application:(UIApplication * ...

  3. 如何修改wampserver中mysql中字符编码的解决方案

    因为我用的一般都是utf8,所以有必要改一下: 打开mysql控制台,输入密码登录之后,执行命令: show variables like ‘%char%’; 注意引号的中英文格式以及最后面的分号不要 ...

  4. js 学习笔记---基本概念

    早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 ! 1.使用严格模式,"use strict",虽然不适用,但是要知道,以免别人使用时 ...

  5. java与javascript之间json格式数据互转

    javascript中对象与字符串的互转 对象转为字符串:通过JSON.encode方法,这个是json.js里面的方法,引入到当前文件就可以了. 字符串转换为对象:①使用JSON.decode方法, ...

  6. 从CSDN转到cnblogs了

    之前一直用的CSDN的博客,网站卡慢经常出问题,发布文章要审核,连修改几个标点符号也要审核,这些我都忍了,毕竟之前发的文章舍不得弃掉. 现在竟然无故封禁我的博客?请问我写的都是技术文章,有哪点违反规定 ...

  7. 2016.01.07 DOM笔记(二) DOM节点

    node节点属性 nodeName属性 oneBox= document.getElementsById('box');var s = oneBox.nodeName;  //nodeName与tag ...

  8. 转录组入门(3):了解fastq测序数据

    sra文件转换为fastq格式 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1.f ...

  9. CWnd* pParent

    Dlg(CWnd* pParent = NULL)的意思是:构造函数.创建对象时第一个调用的地方.CWnd* pParent=NULL是构造的参数,可以不传入,默认为NULL 构造函数(constru ...

  10. css知识框架