C++STL&GP学习后记——初识STL
来源:互联网 发布:淘宝排名越来越靠后 编辑:程序博客网 时间:2024/04/28 22:18
前几天有幸上了侯捷老师的GP(Generic Programming)-STL的选修课,现在把这几天学的东西整理下,一是为了后天的考试小小复习下,另外也当作新的帐号的第一篇博客。(如有什么讲的不对的地方,请斧正)
什么是STL呢?STL就是Standard Template Library,标准模版库。然而,C++的STL,虽然是一套程式库,却不只是一般印象中的程式库,而是一个有着划时代意义,背后拥有先进技术与深厚理论的产品。——《STL源码剖析》_侯捷
首先,让我们看看STL的六大组件:
1. 容器(containers):各种数据结构,如vector,list,deque,set,map等。
2. 算法(algorithms):各种算法如sort,serach,copy,erase等。
3. 迭代器(iterators):扮演容器预算法之间的胶合剂,是所谓的‘泛型指针’。
4. 仿函数(functors):行为类似函数,其实是一个类,只不过重载了operator (),使之具有类似函数的行为。
5. 适配器(adapters):一种用来修饰容器,仿函数或迭代器界面的东西。
6. 分配器(allocators):负责空间配置与管理。
六组件的关系如下图:
Container透过allocator取得存储空间,algorithm透过iterator存取container内容,functor可以协助algorithm完成不通的策略变化,adapter可以修改或套接functor。
下面是一个使用了六大组件的实例程序,虽然很短,可是麻雀虽小五脏俱全:
#include --------------------------------------------1
#include -----------------------------------------2
#include ----------------------------------------3
#include ------------------------------------------4
using namespace std;-----------------------------------------5
int main()---------------------------------------------------6
{
int ia[6] = {27,210,12,47,109,83};----------------------7
vector> vi (ia,ia+6);-------------8
cout<< count_if(vi.begin(), vi.end(),not1(bind2nd(less<int>(),40)));-9
return 0;----------------------------------------------------------10
}
- C++STL&GP学习后记——初识STL
- C++STL&GP学习后记——初识STL
- STL学习笔记-->初识STL
- STL学习笔记--初识STL
- C++—STL学习笔记
- STL运用的C++技术——后记
- STL运用的C++技术——后记
- 初识C++/STL
- STL & GP
- STL入门第一篇——初识STL
- SGI STL(一)——初识STL
- 初识STL——迭代器List
- 《C++程序设计教程》——初识STL
- STL初识
- 初识STL
- 初识STL
- 初识STL
- STL学习笔记— —STL简述
- java多线程之 wait(),notify(),notifyAll() 整理
- w3school设置footer上下边距的方法
- Jollen--Video Streaming 探讨
- 重构:改善既有代码的设计 精彩书评一
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
- C++STL&GP学习后记——初识STL
- 编码
- 客户的需求:AIX 大量创建 user
- 重构:改善既有代码的设计 精彩书评二
- 斐波那契函数
- 后台插入一句话技术
- web.config详解收藏
- http://www.cnblogs.com/artech/archive/2007/02/28/659331.html
- zip 压缩