博客
关于我
实用的 s t l
阅读量:575 次
发布时间:2019-03-11

本文共 760 字,大约阅读时间需要 2 分钟。

寻找数组中的最大最小值可以通过C++ STL中的标准函数实现。对于找出最大值和最小值,使用min_elementmax_element函数即可。这些函数的时间复杂度均为O(n),适用于任意长度的数组。

为了将第n小的数放到对应的位置,可以使用nth_element函数。这一操作的时间复杂度同样为O(n),适合直接在排序后的数组中进行。

如果你的数组当前是未排序的,想要进行排序操作和反转,可以使用sort函数将数组排序,然后再调用reverse函数进行反转,操作时间复杂度为O(n log n)。

如果你已经有一个排序好的数组,可以使用unique函数来扫描数组并去除重复的元素,并返回新的终止指针,这样就能得到一个仅包含唯一元素的新数组。

要检查某个元素是否存在于数组中,可以使用binary_search函数进行二分查找,返回一个布尔值,判断元素是否存在。这种方法的时间复杂度为O(logn)。

如果你希望找到某个元素在数组中的存在位置,可以使用lower_bound函数,它会返回第一个大于或等于指定元素的位置,或者在数组末尾返回end指针。如果你需要找到第一个大于指定元素的位置,可以使用upper_bound函数。

需要注意的是,lower_boundupper_bound的查找范围都是在数组的begin到end-1位置,这样可以避免越界问题。

除此之外,C++ STL还提供了多种容器,如stack(栈,先进后出),queue(队列,先进先出),以及priority_queue(优先队列,基于优先级进行排序)。例如,stack

que可以实现栈操作,如push和pop,队列可以使用push和front方法实现先进先出的功能,优先队列则可以通过push和top()方法来管理和获取具有优先级的元素。

转载地址:http://rqrvz.baihongyu.com/

你可能感兴趣的文章
qt c++实现的ai贪吃蛇吃满屏幕,超详细!(二)ai的具体实现
查看>>
linux 查看log日志相关命令
查看>>
IDEA 2019 安装 mybatis-plus插件
查看>>
div 实现光标悬停变成手型
查看>>
layer.confirm 无效
查看>>
Java 回调机制
查看>>
7、回归和特征选择
查看>>
测试tensorflow是否安装成功 出现 SyntaxError: invalid syntax的错误
查看>>
pycharm使用(新建工程、字体修改、调试)
查看>>
什么是Numpy、Numpy教程
查看>>
Python学习笔记——元组
查看>>
异常声音检测
查看>>
PCB学习笔记——AD17如何添加新的封装
查看>>
numpy版本问题
查看>>
打造自己的图像识别模型1— 数据准备-将图像数据转为tfrecord形式——【何之源-21个项目玩转深度学习】
查看>>
无法打开文件“opencv_world330d.lib”的解决办法
查看>>
maven项目出现 Missing artifact jdk.tools:jdk.tools:jar:1.7
查看>>
maven项目通过Eclipse上传到svn上面,再导入到本地出现指定的类找不到的问题
查看>>
maven 项目部署到tomcat下 没有class文件
查看>>
算法训练 未名湖边的烦恼(递归,递推)
查看>>