STL使用心得

1.  如想从容器删除对象,调用remove,remove_if和unique算法后,必须接着调用erase才能真正删除对象,但list的remove,remove_if和unique真的删除掉了对象。sort算法不能用于list,但list可以调用自己的sort成员函数。list自带的排序函数sort  (list::sort函数和一个“稳定”排序函数的效果一样)。

2.  priority_queue 的优先级与平时的容器刚好相反.

3.  vector<M> v;  v.push_back(M("name","1234"));  push_back只接受一个参数 但用M强制类型转换把参数换成是一个类
从而添加到容器中!!! 不必建立一个对象 赋值 再添加到容器中 对结构也可以

4.  vector<vector<int> >  二维数组. 尽量不要把它作为参数传入. 很慢,尤其是有递归的函数.

5.  比较常用的几个算法 for_each(), sort(), unique(), equal(),Generate().

6.  迭代器左闭右开 [ a , b ) 的区间。(这种左闭右开的区间的思想贯穿整个STL)(引用赵大神原话)

sort( a , a + n ); 是对前n个元素排序

sort( a+1 , a + 5 ); 是对a[1],a[2],a[3],a[4]四个元素排序

7. sort(a.begin(),a.end(), greater<int>());  第三个参数的括号

8.  不要定义了一个vector<int> a之后 就直接出现a[3]这种情况. 多用push_back吧.

9.  很多算法返回的都是一个迭代器,*iterator可能会得到你想要的结果.

10.  仿函数是个好东西,可以令你的算法千变万化.

11.····

posted @ 2013-06-06 23:40  逸马闪骑  阅读(178)  评论(0)    收藏  举报