【C++】【自用】STL六大组件:算法

文章目录

    • 🔺sort
    • stable_sort
    • 🔺reverse
    • 🔺swap
    • 🔺find
    • 🔺max/min
    • 🔺next_permutation/prev_permutation 全排列
    • binary_search
    • lower_bound/upper_bound 求下界和上界
    • set_union/set_intersection/set_difference 求并差交集

🔺sort

在这里插入图片描述

stable_sort

在这里插入图片描述

🔺reverse

在这里插入图片描述

🔺swap

C++98:

不推荐 swap(v1, v2),这样是深拷贝,降低效率
推荐 v1.swap(v2)

在这里插入图片描述

C++11:

swap(v1, v2),使用的是移动构造、移动赋值
v1.swap(v2)
效果一样了	

在这里插入图片描述

🔺find

在这里插入图片描述

🔺max/min

🔺next_permutation/prev_permutation 全排列

在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{vector<int> v = {1, 3, 2};sort(v.begin(), v.end());do{for(auto e: v){cout << e << " ";}cout << endl;}while(next_permutation(v.begin(),v.end()));	// 从升序开始return 0;
}

在这里插入图片描述

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{vector<int> v = {1, 3, 2};sort(v.begin(), v.end(), greater<int>());do{for(auto e: v){cout << e << " ";}cout << endl;}while(prev_permutation (v.begin(),v.end()));	// 从降序开始return 0;
}

binary_search

lower_bound/upper_bound 求下界和上界

在这里插入图片描述
在这里插入图片描述
返回的是第一个 >= val 的起始位置

lower_bound
在这里插入图片描述
返回的是第一个 > val 的值

set_union/set_intersection/set_difference 求并差交集

求并集:
(用 multiset 也可以
在这里插入图片描述

求交集:
在这里插入图片描述

求差集:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/155895.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频怎么压缩?这样做视频变小还清晰

在我们的日常生活和工作中&#xff0c;视频已经成为了不可或缺的一部分。然而&#xff0c;随着视频文件的增大&#xff0c;如何有效地压缩视频以方便存储和传输成了一个重要的问题&#xff0c;如果你还不知道怎么压缩视频大小&#xff0c;不妨试试下面的方法吧~ 方法一&#xf…

计算机网络面试常问问题--保研及考研复试

前言&#xff1a; Hello大家好&#xff0c;我是Dream。今年保研上岸山东大学人工智能专业 &#xff08;经验贴&#xff09;&#xff0c;现在将我自己的专业课备考知识点整理出来&#xff0c;分享给大家&#xff0c;希望可以帮助到大家&#xff01;这是重点知识总结&#xff0c;…

Spark任务优化分析

一、背景 首先需要掌握 Spark DAG、stage、task的相关概念 Spark的job、stage和task的机制论述 - 知乎 task数量和rdd 分区数相关 二、任务慢的原因分析 找到运行时间比较长的stage 再进去看里面的task 可以看到某个task 读取的数据量明显比其他task 较大。 如果是sql 任…

JavaSE学习值之--String类

&#x1f495;"不要同情自己&#xff0c;同情自己是卑劣懦夫的勾当&#xff01;"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;JavaSE学习值之--String类 目录 前言&#xff1a; 一.String类 1.String类的属性 2.字符串的构造 注意&#xf…

数据仓库的基本概述之扫盲系列

数据仓库的诞生原因 随着互联网的普及&#xff0c;信息技术已经深入到各行各业&#xff0c;并逐步融入到企业的日常运营中。然而&#xff0c;当前企业在信息化建设过程中遇到了一些困境与挑战。 1、历史数据积存。 过去企业的业务系统往往是在较长时间内建设的&#xff0c;很…

[开源]基于流程编排的自动化测试工具,插件驱动,测试无限可能

一、开源项目简介 流程编排&#xff0c;插件驱动&#xff0c;测试无限可能 一款基于流程编排的自动化测试工具 二、开源协议 使用Apache-2.0开源协议 三、界面展示 四、功能概述 在软件开发旅程中&#xff0c;测试流程的管理和执行常常是复杂且耗时的挑战。传统测试工具主…

iMovie for Mac:专业级的视频剪辑体验!

如果你是一位视频爱好者&#xff0c;那么你一定不能错过iMovie for Mac这款专业视频剪辑工具。它不仅拥有简单易用的界面&#xff0c;而且功能强大&#xff0c;可以让你轻松完成复杂的视频剪辑任务。 一、界面友好&#xff0c;上手容易 iMovie for Mac的界面设计简洁明了&…

基于轩禹秒杀ctfshow-RSA

目录 babyrsa easyrsa1 easyrsa2 easyrsa3 easyrsa4 easyrsa5 easyrsa6 RSA算法是一种非对称加密算法&#xff0c;与对称加密算法不同的是&#xff0c;RSA算法有两个不同的密钥&#xff0c;一个是公钥&#xff0c;一个是私钥。 CTF中常见的有&#xff1a;广播攻击、共…

前端 | 前端工程化

文章目录 前端工程化1. Vue项目创建2. Vue项目目录结构3. vue项目开发 前端工程化 1. Vue项目创建 安装插件vue-cli npm install -g vue/cli命令行创建 Vue 项目 vue create vue-project(项目名称)图形化界面创建 VUe 项目 vue ui图形化界面如下&#xff1a; 选择功能&…

【excel技巧】如何在Excel表格中添加选项按钮?

不知道大家是否会9遇到需要勾中选项的情况&#xff0c;我们可以在电子表格中制作出可以勾选、选中的选项按钮&#xff0c;今天我们一起学习一下设置方法。 首先&#xff0c;我们需要先在excel工具栏中添加一个功能模块&#xff1a;开发工具 依次点击excel中的文件 – 选项 –…

使用IDEA自带功能将WSDL转java

好像IDEA2018版本之后不再支持webservice转java&#xff0c;可以下载2018.3.6版本的IDEA&#xff08;直接IDEA官网下载即可&#xff09;&#xff0c;然后打开一个项目&#xff0c;在根目录处单击右键 选择Generate Java Code From Wsdl...&#xff0c; 选择OK&#xff0c;即可…

Tomcat项目启动报错

java.io.IOException: java.lang.ClassCastException: Cannot cast org.springframework.web.SpringServletContainerInitializer to javax.servlet.ServletContainerInitializer解决办法&#xff1a;可能Tomcat版本不对&#xff0c;使用7.0.90版本启动报错&#xff0c;使用8.0…

机器人控制算法——移动机器人横向控制最优控制LQR算法

1.Introduction LQR (外文名linear quadratic regulator)即线性二次型调节器,LQR可得到状态线性反馈的最优控制规律,易于构成闭环最优控制。LQR最优控制利用廉价成本可以使原系统达到较好的性能指标(事实也可以对不稳定的系统进行整定) ,而且方法简单便于实现 ,同时利用 Ma…

运维大数据平台的建设与实践探索

随着企业数字化转型的推进&#xff0c;运维管理面临着前所未有的挑战和机遇。为应对日益复杂且严峻的挑战&#xff0c;数字免疫系统和智能运维等概念应运而生。数字免疫系统和智能运维作为新兴技术&#xff0c;正引领着运维管理的新趋势。数字免疫系统和智能运维都借助大数据运…

语音芯片基础知识 什么是语音芯 他有什么作用 发展趋势是什么

目录 一、语音芯片的简介 常见的语音芯片有哪些&#xff1f; 语音芯片的种类有很多&#xff0c;大体区分下来也就4个类别而已&#xff1a; 选型的经验说明如下&#xff1a; 推荐使用flash型语音芯片 一、语音芯片的简介 语音芯片基础知识&#xff1a; 什么是语音芯片&…

winscope使用方法

Ubuntu下Android T的winscope工具使用方法 1. 在Android的项目源码中&#xff0c;prebuilts/misc/common/winscope目录下 直接使用chrome浏览器打开文件winscope.html 2. 可能会提示adb问题 进入目录development/tools/winscope/adb_proxy&#xff0c;有文件winscope_proxy.…

【Python】QTreeWidget树形结构添加

源码&#xff1a; # 参考网址&#xff1a; https://blog.csdn.net/weixin_42286052/article/details/129532631 import os.path import sys from PySide6.QtWidgets import QApplication,QMainWindow,QHBoxLayout,QVBoxLayout,QPushButton,QTreeWidget,QTreeWidgetItem,QTreeW…

【编程必备知识】文件内容的读写

文章目录 前言1. 数据流2. Java IO 流3. InputStream 概述3.1 FileInputStream 概述3.1.1 代码示例 3.2 利用 Scanner 进行字符读取 4. OutputStream 概述4.1 利用 OutputStreamWriter 进行字符写入 总结 前言 书接上回, 本文继续讲解关于文件的知识, 上文讲了如何对文件系统进…

微信小程序wxml使用过滤器

微信小程序wxml使用过滤器 1. 新建wxs2. 引用和使用 如何在微信小程序wxml使用过滤器&#xff1f; 犹如Angular使用pipe管道这样子方便&#xff0c;用的最多就是时间格式化。 下面是实现时间格式化的方法和步骤&#xff1a; 1. 新建wxs 插入代码&#xff1a; /*** 管道过滤工…

【Python爬虫 js渲染思路一】

Python爬虫 破解js渲染思路一 当我们在谈论网页js渲染的时候&#xff0c;我们在谈论什么 js渲染网页&#xff0c;从某种程度来说&#xff0c;是指单纯的http请求&#xff0c;返回的文本数据&#xff0c;与我们在浏览器看到的内容&#xff0c;相距甚远.其可包括为以下几点&…