总结STL的通用算法基本形式

本文详细介绍了STL中四种通用算法的形式及应用实例,包括直接处理输入范围的算法、使用输出迭代器的算法、将输出指定到另一范围的算法以及涉及两个范围的算法,并解释了如何使用这些算法进行数据处理。

stl的通用算法基本有如下四种形式:

  1. alg(beg, end, params):使用源输入作为输出
  2. alg(beg, end, dest, params) :使用dest作为输出,需要保证有足够的空间,所以往往使用inserter
  3. alg(beg, end, beg2, other params):beg2作为输出,假定beg2开始的范围至少跟beg和end指定的范围一样大。
  4. alg(beg, end, beg2, end2, params):beg2 end2作为输出

举例:

第一种比如:

find(beg, end, search_value);
sort(beg, end);
accumulate(beg, end, original_value);
fill(beg, end, value); //特殊的:fill_n(begin, count, n)
replace(beg, end, value, replace_value);
unique(beg, end);
count(beg, end, value);
stable_sort(beg, end);
reverse(beg, end);

第二种比如:

copy(beg, end, back_inserter(vector));

第三种比如:

replace_copy(beg, end, beg2, value, replace_value);
unique_copy(beg, end, beg2);
reverse_copy(beg, end, beg2);

第四种比如:

find_first_of(beg, end, beg2, end2);

另外,有的算法支持谓词,比如

sort(beg, end, comp)
find_if(beg, end, comp)
count_if(beg, end, comp)

有的算法有copy和非copy版,比如

replace(beg, end, value, replace_value);
unique(beg, end);

replace_copy(beg, end, beg2, value, replace_value);
unique_copy(beg, end, beg2);    

本文版权归CXH_ME所有,原创不易,人艰不抄,转载还请注明出处,谢谢

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值