STL--STL和她的迭代器:

STL--概述:

  标准模板库(StandardTemplateLibrary,STL),是C++程序设计语言标准模板库。STL是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。虽然它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。

STL是所有C++编译器和所有操作系统平台都支持的一种库,包含了很多在计算机科学领域里所常用的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应用框架,高度体现了软件的可复用性。

  对所有的编译器来说,提供给C++程序设计者的接口都是一样的。也就是说同一段STL代码在不同编译器和操作系统平台上运行的结果都是相同的,但是底层实现可以是不同的,使用者并不需要了解它的底层实现。

使用STL的应用程序保证得到的实现在处理速度和内存利用方面都是高效的,因为STL设计者们已经考虑好了。

使用STL编写的代码更容易修改和阅读。因为代码更短,很多基础工作代码已经被组件化了;使用简单,虽然内部实现很复杂。

  STL是建立在模板函数和模板类基础之上的功能强大的库。

  模板函数可以实现一般化的常用算法(如统计、排序、查找等)

  模板类可以实现支持几乎所有类型的容器,用来实现常用的数据结构(如链表、栈、队列、平衡二叉树等)

                              STL 头文件一览表:


头文件


内容


头文件


内容


<iterator>


迭代器


<vector>


向量


<utility>


辅助功能


<deque>


双头队列


<memory>


内存管理


<list>


链表


<algorithm>


算法


<set>


集合与多重集合


<functional>


函数对象


<map>


映射与多重映射


<numeric>


数值运算


<stack>


   
<queue>


队列与优先队列

时间: 2024-10-19 11:46:13

STL--STL和她的迭代器:的相关文章

0716-----C++Primer听课笔记----------STL之顺序容器、迭代器

1. 顺序容器的初始化操作 1.1 顺序容器(vector,list,deque)的五种初始化方法,以 vector 为例. #include <iostream> #include <string> #include <vector> using namespace std; int main(int argc, const char *argv[]) { //1.定义空数组 然后后面追加 vector<string> vec1; vec1.push_ba

C++ STL 基础及应用(3) 迭代器

迭代器(Iterator)是 STL 的核心技术,提供了统一访问容器元素的方法,为编写通用算法提供了坚实的技术基础. 本章将带你编写一个自带迭代器的数组类和一个自带迭代器的链表类,模拟 STL 中的容器,这两个实例能够很清晰地展示 STL 的迭代器思想.并探讨迭代器类应该作为容器类的内部类的原因,然后对 STL 迭代器做一下归纳理解,最后阐述一下 STL 中真正的迭代器概况. 那么什么是迭代器呢? 迭代器即指针,可以是需要的任意类型,它的最大好处是可以使容器和算法分离.例如,有两个容器类,MyA

学习STL -- STL 简介

STL简介 STL,标准模板库,是C++语言提供的一个基础模板集合,最初由惠普实验室开发,1998年被定为国际标准,成为C++的标准库. 在C++标准中,STL 被组织为13个头文件:<algorithm>.<deque>.<functional>.<iterator>.<vector>.<list>.<map>.<memory>.<numeric>.<queue>.<set>

STL——STL小结

·这个就是个偷懒的玩意儿 一.介绍: ·STL:标准模板库.Standard Template Library ·STL中有神马???: pairvector, stack, queue, dequepriority_queuemap, setalgorithmcmp与运算符重载  二.Pair ·#include <utility>·里面有两个元素first和second.可以比较大小,先比first再比second. #include <cstdio> #include <

C++ 之高效使用STL ( STL 算法分类)

http://blog.csdn.net/zhoukuo1981/article/details/3452118 C++ 之高效使用STL ( STL 算法分类),布布扣,bubuko.com

stl中的容器、迭代器和算法----vector中的find实现

来源 http://blog.csdn.net/huangyimin/article/details/6133650 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求.容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值. 迭代器 用于遍历一个数据集中的每个元素.这些数据集可能是容器或者容器的子集.迭代器的主要优点是它们为任意类型的容器提供一个小巧并且通用(注意通用很重要)的接口.例如,迭代器接口的一个操作

STL 笔记(四) 迭代器

stl 中迭代器可以理解为面向对象版本的广义指针,提供了对容器中的对象的访问方法,可以遍历容器所有元素,也可以访问任意元素.stl 迭代器有以下五种: Input iterators   只读,输入迭代器,支持如:istream Output iterators  只写,输出迭代器,支持如:ostream.inserter Forward iterators 读写,前向迭代器,只能前向移动 Bidirectional iterators 读写,双向迭代器,能够双向移动,支持如: list.set

STL 笔记(四) 迭代器 iterator

stl 中迭代器能够理解为面向对象版本号的广义指针,提供了对容器中的对象的訪问方法,能够遍历容器全部元素.也能够訪问随意元素.stl 迭代器有下面五种: Input iterators   仅仅读,输入迭代器,支持如:istream Output iterators  仅仅写,输出迭代器.支持如:ostream.inserter Forward iterators 读写,前向迭代器.仅仅能前向移动 Bidirectional iterators 读写,双向迭代器,可以双向移动.支持如: list

STL学习笔记--3、迭代器iterator与traits编程

iterator模式:提供一种方法,依次巡访某个聚合物(容器)所含的各个元素,而无需暴露该聚合物的内部表达式. 1.迭代器设计思维 STL在于将数据容器和算法分开,彼此独立,最后再以一帖粘合剂将它们撮合在一起.只要对算法给予不同的迭代器,就可以对不同容器进行相同的操作. 算法find():接受两个迭代器和一个搜寻目标. //摘自SGI<stl_algo.h> template <class InputIterator, class T> InputIterator find(Inp

STL源码分析之迭代器

前言 迭代器是将算法和容器两个独立的泛型进行调和的一个接口. 使我们不需要关系中间的转化是怎么样的就都能直接使用迭代器进行数据访问. 而迭代器最重要的就是对operator *和operator->进行重载, 使它表现的像一个指针. 类型 迭代器根据移动特性和实施操作被分为5类 input iterator(输入迭代器) : 迭代器所指的内容不能被修改, 只读且只能执行一次读操作. output iterator(输出迭代器) : 只写并且一次只能执行一次写操作. forward iterato