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. [转]linux之at指令详解

    转自:http://www.2cto.com/os/201409/336183.html 指令:at定时任务,指定一个时间执行一个任务,只能执行一次. 语法:# at [参数] [时间]at> ...

  2. synchronized关键字详解(一)

    synchronized官方定义: 同步方法支持一种简单的策略防止线程干扰和内存一致性错误,如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都是通过同步方法完成的(这一个synchroniz ...

  3. ansj --词性说明

    背景 Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ICTCLAS 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高.工具支持词性标注,所以就可以依据词性进行 ...

  4. 使用Jupter Notebook实现简单的神经网络

    参考:http://python.jobbole.com/82208/ 注:1)# %matplotlib inline 注解可以使Jupyter中显示图片 2)注意包的导入方式 一.使用的Pytho ...

  5. nagios 安装pnp4nagios插件

    Naigos install pnp4nagios 绘图插件 原文地址:http://www.cnblogs.com/caoguo/p/5022230.html [root@Cagios ~]# yu ...

  6. Web 服务器与应用服务器的区别是什么?

    不太严谨的说法:web服务器就是负责接收用户的Request,然后响应html等给客户浏览器.应用服务器处理一些业务逻辑等. 作者:luo链接:https://www.zhihu.com/questi ...

  7. php字符串无乱码截取函数封装

    /** * * 中英混合字符串长度判断 * @param unknown_type $str * @param unknown_type $charset */ function strLength( ...

  8. DECLARE_MESSAGE_MAP( )

    DECLARE_MESSAGE_MAP( ) 说明: 你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息.在你的类声明的末尾使用DECLARE_MESSAGE_MAP宏.然 ...

  9. Altium Designer 2017 ActiveRoute使用以及其他技巧

    ActiveRoute 点击右下角PCB->PCB ActiveRoute调出ActiveRoute面板 在设计电路时,有一堆细小的白色线,表示几个脚之间需要连接,按住键盘Alt + 鼠标左键, ...

  10. 4.Linux的进程

    4.1 Linux的进程 4.1.1 进程的概述 有关进程的一些基本概念: 1.什么是进程: 当程序被触发后,执行者的权限与属性.程序的程序代码与所需的数据都会被加载到内存中,操作系统并给予这个内存内 ...