essential C++中的一些疑问记录
2024-10-06 10:23:17
关于书中P87下列代码中,less<int>的使用,我目前的理解是 less<int> 是一个类型,& it 是对外部参数的引用。但是为何要加上引用,另外 调用该函数时 lt 对应值如何选取是我的一大疑惑,我目前的调用方法是在主函数中申请 less<int> qwe 这样的一个qwe变量。但感觉这种方式过于鸡肋了= =||。
vector<int> filter( const vector<int> &vec, int val, less<int> < )
{
....
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>() ) ;
}
最新文章
- Android Weekly Notes Issue #237
- mybatis hibernate比较
- linux进程管理(上)
- 1.javascript篇(基础)
- iOS 和Android中的基本日期处理
- iOS企业版打包(转载)
- convert2Mp4 code snippet
- C基础 那些年用过的奇巧淫技
- TreeMap与TreeSet的实现
- CSS中display:block的使用介绍
- 从equals和==的区别开始
- linux kernel态下使用NEON对算法进行加速
- 新概念英语(1-19)Tired and thirsty
- [Luogu 3674]小清新人渣的本愿
- .NET之JSON序列化运用
- React入门一
- [django]date类型和datetime类型过滤
- Nlog 简单的快速攻略
- 关于Oracle数据库故障诊断基础架构
- 在eclipse中启动java程序的时候,每次都会在一个未设置断点的源码里面,卡断点
热门文章
- 搭建nexus私服
- Node.js 环境搭建及简单应用
- 用JavaScript带你体验V8引擎解析标识符过程
- oracle 断电启动失败:ORA-00600: internal error code, arguments
- 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记
- [科研民工笔记1]安装Ubuntu到U盘
- WebService1
- .netcore持续集成测试篇之搭建内存服务器进行集成测试一
- 洛谷 P2024 [NOI2001]食物链
- Could not determine type for java util List