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

最近在加班;后续补上;




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

笔记:

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。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容