(BOOLAN)STL的适配器和迭代器

2017-12-18  本文已影响0人  坏水强

最近在加班;后续补上;

-----------------------------------------------------------------------------

笔记:

C++的六大部件除了Algorithm是function template,其它都是class template;

Iterator 有5种分类(搜索策略的不同):

iterator分类

Iterator适配器:istream_iterator

备注:课件种大量使用了typename,作为模板类型的关键字。

---------------------------------------------------------------------------------------

accumulate:累计计算,for_each():循环遍历执行;

replace替换;countj计数和count_if条件计数;find查找和find_if条件查找。

-------------------------------------------------------------------------------------------

仿函数functors:struct functors_name{operator();}

----------------------------------------------------------------------------------------

适配器的实现方案:继承和内含;

-------------------------------------------------------------------------------------------

函数适配器binder2nd

cout<<count_if(vi.begin(),vi.end(),notl(bind2nd(less<int>(),40)));

其中less<int>()是一个仿函数,通过int实例化,bind2nd( less<int>() ,40)是函数适配器,因为bind2nd的返回类型还是less<int>()类型,把仿函数的第二个参数绑定为40。bind2nd只是修改less<int>(),这个类型。

仿函数,迭代器必须能够回答adaptator的提问,即adaptor可以操作仿函数的内部变量。

—————————————————————————————————

reverse_iterator:迭代器适配器

X 适配器:istream_iterator。

--------------------------------------------------------------------------------------------------

上一篇 下一篇

猜你喜欢

热点阅读