《Essential C++》笔记三(1)、使用泛型算法

本文是《Essential C++》笔记,关注泛型编程风格。作者分享了将书中非模板函数sub_vec转化为模板版本的过程,探讨了如何设计泛型算法,并提出在使用iterator指针实现向量操作时遇到的删除元素问题。
摘要由CSDN通过智能技术生成

Essential C++第三章主要介绍的是泛型编程风格。

在讲“如何设计泛型算法”时,给出了一个filter的template例子。为了更好的理解和运用泛型算法以及template。将P89(中文版)页给出的sub_vec函数写成template版本。

其原版non-template函数如下:

vector<int> sub_vec( const vector<int> &vec, int val )
{
	vector<int> local_vec( vec );
	sort ( local_vec.begin(), local_vec.end() );
	
	vector<int>::iterator iter = 
		find_if (	local_vec.begin(),
					local_vec.end(),
					bind2nd( greater<int>(), val ));
	
	local_vec.erase ( iter, local_vec.end() );
	return local_vec;
}
将其改为template格式后,函数返回一个iterator指针,指针指向find_if找到的第一个大于指定值的元素,函数为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值