一、STL模板

本文深入讲解C++标准模板库(STL)的三大组件:容器、迭代器与算法。重点介绍了vector、stack、queue、map、set及string的具体应用,帮助读者更高效地使用这些工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STL是C++标准模板库,当时学的时候含糊不清,并不明白这到底是个什么东西,到有个什么道理,怎么着它就能这样用了呢?怎么着它就这么简单呢?这个问题直到前两天我才终于搞明白,那是在C++课程学完了类之后,对与C++有了全新的理解之后,我才发现后面有一个章节讲的就是模板,这才让我如梦初醒般的搞清楚了其中道理(这也好像是说的过分,连源代码都没有看一看也好意思说搞清楚道理),反正就是明白了它怎么来的,这样再使用就感觉有了根据,更加清晰了。

但就算当时百思不得其解,也我也是只能将就将就,糊弄着用了。但也不得不说,学会了使用STL之后,在很多题上面都节约了不少时间,把一些的东西搞得简单了。

STL中主要有三个组件:容器(container)、迭代器(iteratoe)、算法(algorithm)。但我们并不是按这个讲的,而是主要学了其中几个重要的容器及其使用方法。

<vector> 向量用来代替数组的最佳选择,可以用作动态数组,push_back()、pop_back()在向量尾添加、删除元素,v[i]与数组使用一样,还有v.empty()、v.size()函数可以判断向量大小,最好用的是v.erase()可以对数组中间元素删除。

<stack> 栈先入后出 只能对栈顶元素操作,push()、pop()函数进行插入、移除元素。

<queue> 队列先入先出 front()、back()函数返回队头、队尾元素,push()、pop()函数插入队列尾和移除队列头元素。特殊的,还有一个 priority_queue(优先队列)。

<map> 映射,是一对一映射,将两个类型关联,其中<multimap>可以实现一对多的映射。

<set> 集合可以根据特定的排列顺序,将元素排序,其中<multiset>允许重复值。

<string> 字符串 string提供了许多函数对字符串操作,比char数组简单得多。

<sort> 排序sort只是<algorithm>里的一个函数,排序原理应该是快速排序的方法,速度快且方便,而且comp参数可以通过重载,实现结构体等的各种排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值