标准模板库STL

/ 0评 / 0

标准模板库STL 概述

简单地说就是使用模板的程序设计法。

将一些常用的数据结构(比如链表,数组,二叉树和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。标准模板库 (Standard Template Library) 就是一些常用数据结构和算法的模板的集合。

容器概述

可以用于存放各种类型的数据(基本类型的变量,
对象等)的数据结构,都是类模版,分为三种:

  1. 顺序容器
    vector, deque,list
  2. 关联容器
    set, multiset, map, multimap
  3. 容器适配器
    stack, queue, priority_queue

对象被插入容器中时,被插入的是对象的一个复制品。许多算法,比如排序,查找,要求对容器中的元素进行比较,有的容器本身就是排序的,所以,放入容器的对象所属的类,往往还应该重载 == 和 < 运算符。

顺序容器简介

容器并非排序的,元素的插入位置同元素的值无关。

关联容器简介

序列的项(栈顶的项)。后进先出。

顺序容器和关联容器中都有的成员函数

顺序容器的常用成员函数

迭代器

容器类名::iterator 变量名;

或:

容器类名::const_iterator 变量名;

访问一个迭代器指向的元素:

*迭代器变量名

迭代器上可以执行 ++ 操作, 以使其指向容器中的下一个元素。
如果迭代器到达了容器中的最后一个元素的后面,此时再使用
它,就会出错,类似于使用NULL或未初始化的指针一样。

双向迭代器

若p和p1都是双向迭代器,则可对p、p1可进行以下操作:

随机访问迭代器

若p和p1都是随机访问迭代器,则可对p、p1可进行以下操作:

发表评论

电子邮件地址不会被公开。 必填项已用*标注