C++:标准模板库(STL)

介绍

STL(standard template library)标准模板库,是一种高效的C++程序库。
STL分为三类:container(容器),iterator(迭代器)和algorithm(算法)。

STL组件

  • 容器(Container)——管理某类对象的集合
  • 迭代器(Iterator)——在对象集合上进行遍历
  • 算法(Algorithm)——处理集合内的元素
  • 容器适配器(container adaptor)
  • 函数对象(functor)
    在这里插入图片描述

容器(container)

容器是用来管理某一类对象的集合,包括序列式容器和关联式容器。

序列式容器:vector,list,deque
关联式容器:map,set
在这里插入图片描述

遵循规则:

1.所有容器中存放的都是值而非引用。因此容器中的每个元素必须能够被拷贝,如想存放的不是副本,容器元素只能是指针。

2.容器中所有元素都是有次序(order)的,可以进行一次或多次遍历每个元素。

vector

  • vector模拟动态数组
  • vector的元素可以是任意类型T,但必须具备赋值和拷贝能力
  • 必须包含头文件#include< vector >
    在这里插入图片描述

map/multimap

  • 使用平衡二叉树管理元素
  • 元素包含两部分(key,value),key和value可以是任意类型
  • 必须包含的头文件#include< map >
  • 不能直接改变元素的key,可以通过operator[]直接存取元素值
  • map中不允许key相同的元素,multimap允许key相同的元素
    在这里插入图片描述
    在这里插入图片描述

迭代器(iterators)

迭代器用于遍历对象集合的元素,这些集合可能是容器也可能是容器子集。

所有容器都提供获得迭代器的函数。


begin()      返回一个迭代器,指向第一个元素
end()        返回一个迭代器,指向最后一个元素

在这里插入图片描述

算法(algorithm)

算法作用于容器,包括对容器内容进行初始化,排序,搜索和转换等操作。

STL算法分为四类:

1.非可变序列算法:不直接修改容器中内容。

2.可变序列算法:可以直接修改容器的内容。

3.排序算法:包含对序列的排序,合并,搜索和对有序序列的操作等算法。

4.数值算法:对容器内容计算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值