学习笔记 | C++ 标准模板库(Standard Template, STL)

C++ 标准模板库的核心

对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个元素的下一个元素
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容