[C++]STL理论基础

Standard Template Library(标准模板库)

从广义上分为容器(container),算法(algorithm),迭代器(iterator)


优点

  1. STL是C++的一部分不需要额外安装
  2. STL的重要特点是数据与结构分离
  3. 不需要具体了解实现过程,只要能够熟练使用即可
  4. STL具有高可重用性,高性能,高移植性,跨平台的优点

容器

容器内含有元素

容器支持嵌套

容器分为序列式容器与关联式容器

所谓序列式容器,即以线性排列(类似普通数组的存储方式)来存储某一指定类型(例如 int、double 等)的数据,根据元素进入容器的时间或地点等等来决定元素位置,需要特殊说明的是,该类容器并不会自动对存储的元素按照值的大小进行排序。

容器已有既定规则,进入容器的元素位置不由时机或地点等决定

迭代器

迭代器类似于指针

实际上,迭代器是一个类,这个类封装了指针的基本操作

算法

通过有限步骤,解决问题


#include<iostream>
using namespace std;
//算法,负责统计某元素个数
int MyCount(int*start,int*end,int val) {
    int num = 0;
    while (start != end) {
        if (*start == val) {
            num++;
        }
        start++;
    }
    return num;
}

int main() {

    //数组相当于容器,指针相当于迭代器
    int arr[] = { 0,4,6,5,9,56,12,4,4 };
    int* begin = arr; //迭代器开始位置
    int* end = &arr[sizeof(arr) / sizeof(int)]; //迭代器结束位置,最后一个元素的下一个位置
    int val = 4;
    int num = MyCount(begin, end, 4);
    cout << "数组所含"<<val<<"元素为:" <<num <<"个"<< endl;
    return 0;
}
/*
不难看出,算法与容器的结合需要迭代器帮助
因为迭代器的存在,使得算法与容器可以分开设计
*/

原文链接: https://www.cnblogs.com/renboyu/p/13150265.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    [C++]STL理论基础

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/330586

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午5:39
下一篇 2023年3月1日 下午5:39

相关推荐