STL

STL主要由几个核心部件组成,即迭代器、容器、算法、函数对象、适配器。容器即物之所属;算法是解决问题的方式;迭代器是对容器的访问逻辑的抽象,是连接算法和容器的纽带;迭代器通过添加了一种间接层的方式实现了容器和算法之间的独立;函数对象,就是重载了operator()操作符的对象;适配器是通过组合特定的容器实现的一种新的数据结构。

3. 函数模板

C++中的模板是STL实现的技术基础。C++中的模板可分为函数模板和类模板。函数模板抽象了针对不同类型的同一性质的操作。如针对int/long/string的max操作。请看下面的例子:

定义求取两个类型的值或对象的最大值的操作

template<typename T>

T max(T a,T b){return a>b ? a : b;}

求取两个int值的最大值

max(0,10);//返回10

求取两个string对象的最大值

max(string(“Hello”),string(“world”));//返回string(“world”)

4. 类模板

C++中的模板是STL实现的技术基础。C++中的模板可分为函数模板和类模板。类模板抽象了针对不同类型的同一类事务。如针对int/long/string的Stack。请看下面的例子:

定义一个通用堆栈Stack

template<typename T>

class Stack{

public:

         inline void push(const T& value){…}

         T pop(){…}

void clear(){…}

bool empty() const {…}

};

声明一个int类型的Stack

 

typdef Stack<int> IntStack;

声明一个string类型的Stack

typdef Stack<string> IntStack;

容器

容器即物之所在。容器是STL的核心部件之一,是迭代器的依附,是算法作用的目标。

STL中的容器可分为顺序容器(Sequence Container)和关联容器(Associative Container)。容器适配器(Container Adaptor)是对顺序容器(Sequence Container)或关联容器(Associative Container)进行包装而得到的一种具有更多约束力(或功能更强大)的容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值