没有合适的资源?快使用搜索试试~ 我知道了~
标准模板库(STL)学习笔记
需积分: 10 15 下载量 61 浏览量
2010-09-29
16:46:29
上传
评论
收藏 71KB DOC 举报
温馨提示
试读
8页
标准模板库(STL)学习笔记,以STL容器list为例,学习C++标准模板库及其算法之for_each()、count()、count_if()。
资源推荐
资源详情
资源评论
标准模板库(STL)学习笔记之 List 容器
什么是 STL 呢?STL 就是 Standard Template Library,标准模板库。从根本上说,STL 是一些“容器”的
集合,这些“容器”有 list,vector,set,map 等,STL 也是算法和其他一些组件的集合。这里的“容器”和算
法的集合指的是世界上很多聪明人很多年的杰作。8
STL 的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL 现在是 C++的一部分,
因此不用额外安装什么。它内建在编译器之内。
在本文中我们将会看到如何定义和初始化一个 list,计算它的元素的数量,从一个 list 里查找元素,
删除元素,和一些其他的操作。要作到这些,我们将会讨论两个不同的算法,STL 通用算法都是可以操作
不止一个容器的,而 list 的成员函数是 list 容器专有的操作。
这是三类主要的 STL 组件的简明纲要。STL 容器可以保存对象,内建对象和类对象。它们会安全的
保存对象,并定义我们能够操作的这个对象的接口。放在蛋架上的鸡蛋不会滚到桌上。它们很安全。因此,
在 STL 容器中的对象也很安全。
STL 算法是标准算法,我们可以把它们应用在那些容器中的对象上。这些算法都有很著名的执行特
性。它们可以给对象排序,删除它们,给它们记数,比较,找出特殊的对象,把它们合并到另一个容器中,
以及执行其他有用的操作。
STL iterator 就像是容器中指向对象的指针。STL 的算法使用 iterator 在容器上进行操作。Iterator 设置
算法的边界 ,容器的长度,和其他一些事情。举个例子,有些 iterator 仅让算法读元素,有一些让算法写
元素,有一些则两者都行。 Iterator 也决定在容器中处理的方向。
你可以通过调用容器的成员函数 begin()来得到一个指向一个容器起始位置的 iterator。你可以调用一
个容器的 end() 函数来得到过去的最后一个值(就是处理停在那的那个值)。
这就是 STL 所有的东西,容器、算法、和允许算法工作在容器中的元素上的 iterator。 算法以合适、
标准的方法操作对象,并可通过 iterator 得到容器精确的长度。一旦做了这些,它们就在也不会“跑出边界”。
还有一些其他的对这些核心组件类型有功能性增强的组件,例如函数对象。我们将会看到有关这些的例
子,现在 ,我们先来看一看 STL 的 list。
定义一个 list
我们可以象这样来定义一个 STL 的 list:8
#include <string>
#include <list>
using namespace std;
int main()
{
list<string>Milkshakes;
return 0;
}
这就行了,你已经定义了一个 list。简单吗?list<string> Milkshakes 这句是你声明了 list<string>模
板类 的一个实例,然后就是实例化该类的一个对象。但是我们别急着做这个。在这一步其实你只需要知
道你定义了 一个字符串的 list。你需要包含提供 STL list 类的头文件。我用 gcc 2.7.2 在我的 Linux 上编译
这个测试程序,例如:
g++ test1.cpp -o test1
注意 iostream.h 这个头文件已经被 STL 的头文件放弃了。这就是为什么这个例子中没有它的原因。
资源评论
buaaxiao
- 粉丝: 58
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功