文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档><<C++标准程序库>>读书笔记--STL算法

<<C++标准程序库>>读书笔记--STL算法

时间:2010-10-08  来源:linyilong

for_each():
for_each(InputIterator beg,InputIterator end,UnaryProc op)
对区间每一个元素调用op(elem);
for_each(vec.begin(),vec.end(),Addvalue<int>(10));
//Addvalue为自己写的仿函数
可以改成:
transform(vec.begin(),vec.end(),vec.begin(),bind2nd(puls<int>(),10));

 

非变动性算法:
count(InputIterator beg,InputIterator end,const T &value);
count_if(InputIterator beg,InputIterator end,const T &value,UnaryPredicate op);

count返回区间元素值等于value的元素个数
count_if返回区间元素op(elem)为true的个数
示例:
num=count(vec.begin(),vec.end(),4);//返回vec内4的个数
num=count_if(vec.begin().vec.end(),bind2nd(greater<int>(),4));//返回vec内大于4的个数

 


min_element(InputIterator beg,InputIterator end);
min_element(InputIterator beg,InputIterator end,CompFunc op);
max_element(InputIterator beg,InputIterator end);max_element(InputIterator beg,InputIterator end,CompFunc op);
返回区间最小/最大的元素无op的版本,以operator<进行元素比较op用来比较两个元素op(elem1,elem2);如果存在多个最大/最小,返回第一个最大/最小值
bool absLess(int elem1,int elem2){  return abs(elem1)<abs(elem2);
}
cout<<*min_element(vec.begin(),vec.end())<<endl;cout<<*min_element(vec.begin(),vec.end(),absLess)<<endl;

 

搜寻算法:
find(beg,end,const T& value);
find_if(beg,end,const T &value,op);
第一个返回元素值等于value的位置
第二个返回op(elem)为true的位置

 


search_n(begin,end,size count,const T &value);
search_n(begin,end,size count,const T &value,op);
 第一个返回连续count个值为value的位置
第二个返回连续count个op(elem)为true的位置
如果没有找到,都返回end

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载