好不容易过完一个年,又到了爬坑的时间了 希望今年不要那么坑了。。不多说进入正题 STL也看了一段时间了小有心得 怕忘了故此写篇日志记录下 后续还有补充。

1.stl的区间是半开 即[begin,end)的

2.remove 移除容器中某个元素 并没有真正参数 容器的大小并没有发生改变 移除的元素只是被覆盖掉了

如: 1 2 3 4 5 6 7 8 9

remove  4

1 2 3 5 6 7 8 9 X(未知的数) remove返回迭代器的位置是9后面的一个X

所以真正删除某数 earse(remove(begin,end,V),end);

remove_if(begin,end,fun) bool fun(int v){return v==3;} 移除容器中为3的全部元素

remove_copy(begin,end,otherbegin,V) 返回被复制的全部元素下一个

3.vector查找效率高 list常用于删除增加操作

4.偏特化

template<T>

class A

{};

template<T>

class A<T*>

{};

5.仿函数

class A

{

bool operator()()//重载括号

{}

}

for_each(begin,end,A());

6.容器list不能使用算法库中的sort,sort必须使用随机迭代器,list只能使用自身的sort函数进行排序

7.仿函数mem_fun_ref用于STL<T>,mem_fun用于STL<T*>

....

未完待续。。。。。STL这种东西需要多写才会影响深刻。。。最近正在翻阅资料准备写个项目出来借机熟悉下各种库 下篇博客应该就开始写项目了。。菜鸟爬坑中。。。。