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 ******/

最新文章

  1. 移动BPM解决方案分享
  2. javascript正则表达式
  3. LaTeX 算法代码排版 --latex2e范例总结
  4. 个推+DCLOUD,推送消息和透传消息
  5. Java开发中的23种设计模式(转)
  6. log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.
  7. 【Hadoop学习】CDH5.2安装部署
  8. SRM 408(1-250pt, 1-500pt)
  9. 关于控制文件和redo log损坏的恢复
  10. 基础DP的一些知识总结(未完成)
  11. 模块“XXX.dll”加载失败
  12. 使用hexdump追踪FAT32文件系统中的一个文件
  13. spring-boot 多模块化项目和EurekaServer的搭建
  14. obj-c中如何定义类的私有实例方法
  15. iPhone开发初探
  16. frp内网 穿透映射使内网svn可外网访问
  17. 自己实现一个nullptr
  18. MySQL索引背后的数据结构及算法原理(转)
  19. Android外包团队——Jquery乱码解决方案
  20. Js时间格式[转载]

热门文章

  1. 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法
  2. android接收mjpg-streamer软件视频流
  3. DeltaFish 校园物资共享平台 第七次小组会议
  4. SQL基本操作——JOIN多表联查
  5. vim之补全1(完全个人定制版)
  6. Linux Shell 小知识
  7. Spring学习笔记_day01_ioc
  8. 如何给PDF文件添加水印?
  9. Burnside引理和polay计数 poj2409 Let it Bead
  10. swift 再识枚举变量