关于书中P87下列代码中,less<int>的使用,我目前的理解是 less<int> 是一个类型,& it 是对外部参数的引用。但是为何要加上引用,另外 调用该函数时 lt 对应值如何选取是我的一大疑惑,我目前的调用方法是在主函数中申请 less<int> qwe 这样的一个qwe变量。但感觉这种方式过于鸡肋了= =||。

vector<int> filter( const vector<int> &vec, int val, less<int> &lt )
{
....
while( (iter=find_if(iter , vec.end() , blind2nd(lt,val) ) )!=vec.end() )
....
}
int main()
{
  less<int> qwe; vector<int> nvec=filter( vec, , qwe );
}

但是在此基础上,若filter函数的lt参数不加引用,则使用函数时较为方便。不过,这种调用方式我有不是很理解了。。lt到底是什么呢?

vector<int> filter( const vector<int> &vec, int val, less<int> lt )
{
....
while( (iter=find_if(iter , vec.end() , blind2nd(lt,val) ) )!=vec.end() )
....
}
int main()
{
  vector<int> nvec=filter( vec, , less<int>() );
}

最后是P89中提议 依照filter()的写法将sub_vec()改为一个template function,我的做法如下,待解决的问题是如何将输出的部分(即对应ElemType型<=value的部分)存入一个新的容器(与initerator所指容器相同),也就是如何return一个答案容器。

#include <functional>
#include <vector>
#include <algorithm>
#include <stdio.h>
#include <iostream>
using namespace std; template <typename initerator,typename ElemType,typename Comp>
void sub_vec( initerator first , initerator last,ElemType val,Comp pred )
{
sort(first,last);
for(initerator it=first;it!=last;it++)
cout<<*it<<' ';
initerator iter=find_if( first,last,bind2nd(pred ,val));
for(;first!=iter;first++)
cout << *first; } int main()
{
int a[]={,,,,,,};
vector<int> vec(a,a+);
sub_vec( vec.begin(),vec.end(),,greater<int>() ) ;
}

最新文章

  1. Android Weekly Notes Issue #237
  2. mybatis hibernate比较
  3. linux进程管理(上)
  4. 1.javascript篇(基础)
  5. iOS 和Android中的基本日期处理
  6. iOS企业版打包(转载)
  7. convert2Mp4 code snippet
  8. C基础 那些年用过的奇巧淫技
  9. TreeMap与TreeSet的实现
  10. CSS中display:block的使用介绍
  11. 从equals和==的区别开始
  12. linux kernel态下使用NEON对算法进行加速
  13. 新概念英语(1-19)Tired and thirsty
  14. [Luogu 3674]小清新人渣的本愿
  15. .NET之JSON序列化运用
  16. React入门一
  17. [django]date类型和datetime类型过滤
  18. Nlog 简单的快速攻略
  19. 关于Oracle数据库故障诊断基础架构
  20. 在eclipse中启动java程序的时候,每次都会在一个未设置断点的源码里面,卡断点

热门文章

  1. 搭建nexus私服
  2. Node.js 环境搭建及简单应用
  3. 用JavaScript带你体验V8引擎解析标识符过程
  4. oracle 断电启动失败:ORA-00600: internal error code, arguments
  5. 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记
  6. [科研民工笔记1]安装Ubuntu到U盘
  7. WebService1
  8. .netcore持续集成测试篇之搭建内存服务器进行集成测试一
  9. 洛谷 P2024 [NOI2001]食物链
  10. Could not determine type for java util List