对C++最重要的增强是加入了标准库模板(Standard Template, STL)。算法是可以应用与不同数据结构的常用函数,其应用是通过迭代器来协调的,迭代器决定了算法能够应用于哪些类型的对象。
1 容器
容器是一种数据结构,存储具有相同类型的对象。
2 迭代器
迭代器是一个对象,用于引用存储在容器中的元素。因此,它是一个通用指针。迭代器允许访问包含在容器中的信息,所以可以通过迭代器在这些元素上执行所需要的操作。
作为通用指针,迭代器保留了解除引用符号。比如说,*i是由迭代器i引用的元素。此外,迭代器运算和指针运算类似,尽管在所有的容器中都不允许在迭代器上执行操作。
3 算法
STL提供可大约70个通用函数,称为算法。这些算法能够应用于STL容器和数组。几乎所有的STL算法都是用迭代器来指示元素的范围。算法是容器提供的成员函数之外的函数。
3.1 标准模板库中的算法
要访问这些算法,程序必须包含语句:#include<algorithm>。另外,“在[first, last)范围中的元素”是“在[first, last)范围中由迭代器制定的元素”或“由迭代器引用的、从first开始,但不包括last的元素”的简化说法。
附:标准模板库的成员函数及含义
成员函数 | 操作 |
---|---|
void sort(first,last) | 按照升序排列[first,last)范围中的元素(注意此元素只能是常规类型,不能是结构体等) |
void sort(first,last,f()) | 按照由关系f()确定的顺序排列[first,last)范围中的元素,且不改变相等元素的相对顺序 |
易错100《=痛的领悟
1、关于begin()和end()的位置
一个有N个元素的容器a:
- a.begin()=a[0],代表第一个元素
- a.end()=a[N],代表第N个元素的下一个元素
网友评论