STL入门教程

STL入门教程

写在前面:博主在学习STL的时候遇到了很多困扰,博主认为其根本原因是因为大多数初学者同笔者一样,急于求成,想尽快实现自己需要的功能,特别是对迭代器了解不深。笔者希望通过这篇文章,让各位读者真正认识STL这个常见、方便而优秀的模板库,也希望这篇博文成为最优秀STL入门教程之一。

STL(Standard Template Library)标准模板库,是惠普实验室开发的一系列软件的统称,关于STL的功能,简单地说,STL给一些复杂的数据结构的实现提供了一种简单的写法

STL主要包含的三个部i分:

容器:作用是管理数据集合,包括各种数据集合,常用的有<vector>,<list>,<deque>,<set>,<map>。

算法:在<algorithm>中包含了许多非常出色的算法,使用起来十分简洁,例如最常用的sort,以及search,copy,erase

迭代器:迭代器提供了遍历容器的方法,这在后面的重载运算符中会详细描述。

上一段vector容器实现的代码。

#include<iostream>
#include<vector>
using namespace std;
int main()
{
	vector<double> data;
	vector<double>::const_iterator i;
	data.push_back(5);
	data.push_back(2);
	data.push_back(1);
	for(i = data.begin() ; i != data.end() ; i++)	cout << *i << endl;
    return 0;
}

其输出为

5
2
1 

 

 

 

 

 

 

 

 

 

 

C++标准函数库中80%是STL,其中广泛使用了泛性编程思想,在其中分为几大部分。 1:语言支持部分。 2:诊断部分。包含了异常处理,断言,错误代码三大方式。 3:通用工具部分。包括动态内存管理工具,日期/时间处理工具等。 4:字符串处理部分。 5:国际化部分。使用Locale和facet可以为程序提供多国际化支持,包括各种字符集,日期时间,数值货币处理的支持。 6:容器(containers)部分。STL重要部分,包含了许多数据结构,有vector(动态增加的数组),queue(队列),stack(堆栈)……甚至也包括string,它也可以看做为一种容器,并且适用所有的容器可用的方法。 7:算法(algorithms)部分。STL重要部分,包含了70多个通用算法,都是优化的效率很高的,用来控制各种容器,内建数组等。例如find可以用来在容器中查找某特定值的元素,for_each可以用来将函数应用到容器元素之上,sort用于对容器中的元素排序。 8;迭代器(iterators)STL重要组成部分,每个容器都有自己的迭代器,只有容器才可以进行访问自己的元素,它类似指针,将算法和容器中的元素联系起来。 9:数值(numerics)部分。包含了一些数学运算的功能库,对复数运算提供了支持。 10:输入输出(I/O)部分。摸版化的IOStream部分。他提供了对C++程序的支持,并且对原有的iostream兼容。 所以,总体看来,C++标准函数库,包含的10大块内容中,STL主要包含了四个部分,迭代器,容器,算法。和额外的一个字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值