常用的几个泛型函数

泛型算法不依赖任何对象提供的的操作。

algorithm 意思是算法,里面有常用的算法

 

int a=find(int* begin,int* end,int b);

int*a=find_first_of(int*begin,int*end,int*beg,int*en);在begin与end中找出第一个与beg与en中匹配的迭代器;注意不存在时返回end;

fill(int*begin,int*end,int);用来写入值;

fill_n(int*begin,int a,b);在begin开始的a个值中写入b;

copy(int*begin,int*end,int*start); 将begin与end间的值复制到从start开始的一段元素中;

replace(int*begin,int*end,int a,int b);将begin与end间的a替换为b;

replace_copy(int*begin,int*end,int*start,int a,int b);替换后存放到start开始的一段元中;

sort(int*begin,int*end);按‘<’运算进行排序

unique(int*begin,int*end);将第二次出现的元素放到序列后边

 

使用谓词:

stable_sort(int*begin,int*end,isshorter);利用bool isshorter(int*a,int*end)函数(a<b为true)进行排序;

count_if(int*begin,int*end,issmall)利用bool issmall(int a)函数统计个数;

 unique_copy(int* begin,int*end,int* start)将不同的值复制到另一个地方。

 

numberic里面有关于算术的一些算法

int a=accumulate(int *begin,int*end,int b);先加b后求和;依赖于提供的算术操作‘+’;

 

iterator文件里包含了一些关于迭代器的函数;

vector<int> * vv=back_inserter(vector<int> vec),vv的‘+’运算被定义为push_back();

类似的front_inserter(vector<int> vec),'+'运算被定义为push_front();

vector<int>*vv=inserter(vector<int> vec,vector<int>::iteror a);vv中的'+'被定义为在a的前面插入;

istream_iterator<int> cin_iter(cin);将'+'运算定义为>>

istream_iterator<int> end;定义一个超出末端的迭代器;

ostream_iterator<int> out_iter(cout);将'+'运算定义为"<<

 注意利用反向迭代器进行逆序的遍历。

rbegin将'+算定义为'-'指向最后一个元素

rend将'-'定义为'+'指向开始元素

 

泛型算法基本分为这几类:                           |    c++ 的算法模式大部分属于以下2种:

 只读算法:不改变元素值与顺序        |    通过算法所带的形参定义

给指定元素赋值算法;            |    通过标准库两种函数命名和重载的规范定义

将一个元素值赋给另一个元素的算法;      |

 

形参模式函数:alg(beg,end,other)........alg(beg,end,beg0,other).......

alg(beg,end,beg0,end0).....

标准库常用重载的模式:

带有一个值或者带有谓词的参数

sort(beg,end)--sort(beg,end,arg),arg谓词与'<'

find(beg,end,val)--find_if(beg,end,arg)arg谓词与'==';

 关于复制与否的算法。

reverse(beg,end);

reverse_copy(beg,end,dest);

一些容器特有的算法:

常用的几个泛型函数

仅供参考,备忘用。

 

 

原文链接: https://www.cnblogs.com/Yeah-come-on/archive/2012/05/08/2487277.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    常用的几个泛型函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/49747

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午1:24
下一篇 2023年2月9日 上午1:25

相关推荐