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

被折叠的 条评论
为什么被折叠?



