《Effective C++》 与《Effective STL》总结

博客从实用性角度对《Effective STL》进行总结,包括算法调用优先于手写循环,容器成员函数优先于同名算法,掌握men_fun和men_fun_ref使用,调用empty而非检查size是否为0。还介绍了不同容器删除元素和条件删除元素的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下从实用性进行总结:

首先是《Effective STL》总结

1、算法调用优先手写的循环。比如用for_each算法替换手写的for循环等。

2、容器的成员函数优先于同名的算法。因为成员函数更快且与容器结合更精密。比如关联容器提供了count、find算法,list容器提供了remove、remove_if等。

比如用stl通用算法find操作map时,不如直接调用map自身的find方法。

3、掌握men_fun和men_fun_ref的使用。

4、调用empty而不是检查size()是否为0。

5、删除容器中的元素时

(1)容器为vector、list、string时,使用earse-remove。因为这些容器调用remove并未删掉元素,只是把该元素移到末尾,且remove调用后返回的迭代器指向了这个待删的元素。

(2)容器为list时,直接使用list::remove方法。

(3)容器为关联容器时,使用它的earse成员函数。

6、条件删除元素时

(1)容器为vector、list、string时,使用earse-remove_if。因为这些容器调用remove_if并未删掉元素,只是把该元素移到末尾,且remove调用后返回的迭代器指向了这个待删的元素。

(2)容器为list时,直接使用list::remove_if方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值