C++之STL(简述)(蓝桥杯备战)

2019年是我第一次参加蓝桥杯比赛。

在2019年的蓝桥杯中,我选择了C/C++B组的比赛。

在C++组的比赛中,STL是被允许使用的。而且在一些时候可以简化代码长度,提高代码效率。但在之前的学习中,我们并没有对STL有什么接触,因此专门抽出一段时间对STL进行学习。

由于本次是专门针对蓝桥杯对STL进行学习,因此在很多方面对STL不会进行深入的研究,只会要求在比赛中能够在API文档的帮助下可以熟练使用即可。

STL简述

  • STL是一个具有工业强度的,高效的C++程序库
  • 她实现了诸多在计算机科学领域内常用的基本数据结构和基本算法
  • STL主要包括了容器、算法、迭代器

1.容器

是容纳、包含相同类型元素的对象,主要用类模板实现

序列型容器:容器中的元素按照线性结构组织起来,可以逐个读写元素。主要包括vector(向量)、deque(双端队列)、list(双向链表)。

关联型容器:通过键(key)存储和读取元素。主要有map(映射)、set(集合)等。

容器适配器:是对前面提到的某些容器进行再包装,使其变成另一种容器。主要的有stack(栈)、queue(队列)等。

2.迭代器

是用于确定元素位置的数据类型,可以用来遍历容器中的元素

通过迭代器可以读取、修改它指向的元素,它的用法和指针类似。

每一种容器都定义了一种迭代器

定义一个容器类的迭代器的方法可以是

容器类名<元素类型>::iterator 变量名

vector::iterator  it;

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

*迭代器变量名

*it=5;

3.算法

由许多函数模板组合成的集合,实现了大量的通用算法,用于操纵各种容器

STL中提供的算法涉及到:比较、交换、查找、遍历、复制、修改、移除、反转、排序、合并等。大约有70中标准算法

算法通过迭代器来操纵容器中的元素

算法可以处理容器,也可以处理C语言数组

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值