最近在加班;后续补上;
-----------------------------------------------------------------------------
笔记:
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。
--------------------------------------------------------------------------------------------------
网友评论