美文网首页
学习笔记 | C++ 标准模板库(Standard Templa

学习笔记 | C++ 标准模板库(Standard Templa

作者: 三金姐姐 | 来源:发表于2021-01-27 21:21 被阅读0次
    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个元素的下一个元素

    相关文章

      网友评论

          本文标题:学习笔记 | C++ 标准模板库(Standard Templa

          本文链接:https://www.haomeiwen.com/subject/seczzktx.html