当前位置: 首页 > news >正文

对于C++STL及其时间复杂度的总结

由于本次在山东CCPC邀请赛中,对于堆的时间复杂度记忆不清晰,导致第4题没有做出来,与铜牌失之交臂,故觉应整理STL的时间复杂度。

本文仅整理有用(竞赛)的stl及其用法,并且不阐述过于基础的内容。


vector

头文件#include<vector>

vector开在局部或者全局都是开的堆空间,不会爆栈。
也就是说你能把vector开到1e18的长度都没事。

函数

1.vec.front();	//返回第一个元素,时间复杂度O(1)2.vec.back();	//返回最后一个元素,时间复杂度O(1)3.vec.pop_back();	//删除最后一个元素,O(1)4.vec.push_back(x);	//在尾部加入一个元素x,O(1)5.vec.size();	//返回vec的长度,O(1)6.vec.begin();	//返回vec的起始位置7.vec.end();	//返回vec的结束位置加一个位置8.vec.empty();	//返回vec是否为空9.vec.clear();	//清空vec,**O(N)**
如果要清空二维vec,就需要循环行数进行clear10.vec.inesrt(pos,x);	//在下标pos出插入x元素,**O(N)**
其中pos必须以这样的格式:vec.begin() + n,即插入到n位值(下标从0开始)11.vec.erase(start,end);	//删除[first,end)范围内的元素,**O(N)**

创建一维vector

1.普通的创建
vector<数据类型> vec;2.指定长度和初始值的创建
vector<数据类型> vec(长度)	//长度被指定,默认值为0
vector<数据类型> vec(长度,默认值);		//长度与默认值被指定3.创建默认有多个元素的vector
vector<数据类型> vec{1,值2,值3};	//创建了长度为3,并填充了三个指定值的vector4.复制创建
(1).
vector<int> a;
vector<int> b(a);	//创建出和a有相同数据类型,相同长度,相同初始值的vector,不实用
(2).
vector<数据类型> b = a;	//相当于把a数组赋给了b,数据类型要保证相同

创建二维vector

1.指定行数的二维vector
vector<数据类型> vec[N];		//行数不可扩展只能为N,列数可扩展,vec[1]就相当于一个普通一维vector2.行列均可变化的二维vector
vector<vector<数据类型>>vec;	//行和列均可扩展,但是必须push_back进去一个完整的数组3.指定行列和默认值
vector<vector<数据类型>> vec(行,vector<数据类型>(列,0));

stack(不如数组模拟)

头文件#include<stack>

创建

stack<数据类型>s;

函数

1.s.push(x);	//将x压入栈中,O(1)2.s.pop();		//弹出栈顶,O(1)3.s.top();		//返回栈顶元素,O(1)4.s.empty();	//返回栈是否为空,O(1)5.s.size();		//返回栈元素个数,O(1)

无法直接遍历栈,必须一个个弹出来遍历,当然不如直接用数组模拟能够直接遍历。


queue

头文件#include<queue>

创建

queue<数据类型>q

函数

均为O(1)时间复杂度

1.q.front();	//返回队首元素2.q.back();3.q.push(x);4.q.pop();5.q.size();6.q.empty();

deque

头文件#include<deque>

创建

deque<数据类型>q;

函数

1.q.push_back(x)/q.push_front(x)	//压入首/尾,O(1)2.q.back()/q.front()	//返回首/尾元素,O(1)3.q.pop_back()/q.pop_front()	//O(1)4.q.erase(pos)/q.erase(st,ed)		//删除pos处元素或删除[st,ed)的元素,**O(N)**5.q.empty()	//O(1)6.q.size()	//O(1)7.q.clear()	//**O(N)**8.q.insert(pos,x)	//**O(N)**

priority_queue

头文件#include<queue>

创建

priority_queue<int>heap 或 priority_queue< int,vector<int>,less<int> >heap;		//大根堆,top是最大
priority_queue< int,vector<int>,greater<int> >heap;								//小根堆,top是最小

创建对结构体的优先队列时,需要在结构体内定义好排序规则(重载运算符)

struct Node{int a,b;bool friend operator <const	(Node &A,Node &B){return A.a < B.a;}
};

函数

牢牢记住优先队列的两个logN,血的教训

1.q.top()		//返回堆顶元素,O(1)2.q.push(x)		//压入x元素,**O(logN)**3.q.pop()		//弹出x元素,**O(logN)**4.q,size()		//返回堆中元素数量,O(1)5.q.empty()		//O(1)

map/unordered_map

头文件#include<map>#include<unordered_map>
map基于红黑树,unordered_map基于哈希表
map按照值排序,unordered_map不排序
map的指引可以分成两种,第一种是迭代器,就是下标,第二种是键。
基础用法不赘述

创建

map<数据类型(键),数据类型(值)>map

函数

1.m.find(x)	//返回值为key的键,如果没有就返回最后一个下标的下一个值,**O(logN)**2.m.erase(pos)	//删除pos位置的键及其值,O(1)3.m.erase(key)	//删除key键及其值4.m.size()		//返回已经存入了多少个键或值,O(1)5.m.clear()		//清空,O(N)6.m.insert({key,value})	//插入元素7.m.rbegin()	//返回最后一个元素的迭代器8.m.begin()		//返回第一个元素的迭代器9.m.count(key)	//查询是否存在键key10.m.lower_bound(x)	//返回键大于等于x的第一个键的迭代器,O(logN)11.m.upper_bound(x)	//返回键大于x的第一个键的迭代器,O(logN)

对于map,修改和查询都相当于对红黑树进行修改,即时间复杂度都为O(logN),而unordered_map的修改查询操作都接近O(1)


multimap

头文件#include<map>
与map不同的地方在于multimap可以存储多个相同的键及其对应的值

创建

multimap<数据类型(key),数据类型(值)>m

函数

1.m.count(key)	//返回键为key的键值对的个数2.m.emplace()	//指定位置构建键值对,比insert效率高

大多数函数与map相同,值得注意的是,multimap不能通过直接给出键来查询值。


set/unordered_set

头文件#include<set>以及#include<unordered_set>
并且也有multiset

创建

set<数据类型>s

函数

1.s.begin()		//返回第一个元素的迭代器,O(1)2.s.rbegin()	//返回最后一个元素迭代器,O(1)3.s.clear()		//清空,O(N)4.s.empty()		//O(1)5.s.insert()	//O(logN)6.s.size()		//O(1)7.erase(key)	//删除键为key的值,O(logN)8.s.find(x)		//查找x,并返回迭代器,O(logN)9.s.count(x)	//查询x是否出现过,O(logN)10.s.lower_bound(x)		//返回大于等于x的第一个元素的迭代器,O(logN)11.s.upper_bound(x)		//返回大于x的第一个元素的迭代器,O(logN)

set可以改变排序方式

set<int>s	//从小到大set<int,greater<int>>s	//从大到小

string

头文件#include<sring>

特性

支持比较运算符,即可直接按照字典序比较两个字符串,并且更长的更大。

两个字符串可以直接用加法运算法加起来

读入

cin >> str遇到空格就停止
getline(cin,s)遇到换行符停止

函数

1.s.size()/s.length()	//返回长度2.s.insert(pos,x)	//在pos位置插入字符串x3.s.push_back(x)	//在结尾插入字符x,效率较高4.s.erase(pos)		//删除pos处的字符5.s.erase(st,ed)	//删除[st,ed)中的字符6.s.clear()			//清空7.s.replace(pos,len,str)	//从pos开始的长度为len替换为字符串str8.s.replace(pos,len,cnt,c)	//从pos开始的长度为len替换为cnt个字符c9.s.replace(it1,it2,str)	//把从[it1,it2)替换为str10.tolower(s[i])		//字符s[i]变为小写11.toupper(s[i])		//字符s[i]变为大写12.s.substr(pos,len)	//截取从pos开始,长度为len的字符串13.s.find(str,pos)		//从pos开始查找字符串str或字符14.s.rfind(str,pos)		//从pos倒着找字符串str或字符

bitset

头文件#include<bitset>
只能存0和1

创建

1.bitset<n>a	//创建n位,每一位都是02.bitset<n>a(s)	//用string类型创造bitset

特性

可以像二进制数一样进行位运算

函数

1.b.any()		//返回b中是否有1的数位2.b.none()		//返回b中是否没有1的数位3.b.count()		//返回b中1的个数4.b.size()		//返回二进制位有多少5.b[pos]		//直接查询pos数位是什么数6.b.set()		//把b所有数位设为17.b.set(pos)	//把pos数位设为18.b.reset()		//b所有数位设为09.b.reset(pos)	//bpos数位设为010.b.flip()		//b的所有二进制数位取反11.b.flip(pos)12.b.to_ulong()	//用b返回一个unsigned long值

array

头文件#include<array>
大小固定,更像普通数组,比vector快

创建

1.array<数据类型,len>a;	//开一个len长度的,但是默认值不确定2.array<数据类型,len>a{};	//开一个len长度的,默认值为0

函数

1.a.begin()		//返回第一个元素的迭代器2.a.end()		//返回最后一个元素后一个位置的迭代器3.a.rbegin()	//返回最后一个元素的迭代器4.a.size()		//返回a的长度5.a.at(n)		//返回a[n]6.a.front()		//返回第一个元素7.a.back()		//返回最后一个元素8.a.data()		//返回一个指向a的第一个元素的指针9.a.fill(x)		//用x给a初始化10.a1.swap(a2)	//交换相同长度的a1和a2的所有元素11.fill(st,ed,x)//初始化[st,ed)为x12.get<n>(a)	//相当于a[1],并且n只能为具体数字

STL函数

这里有众多神器啊

__builtin_ffs(x)

返回x的二进制数位中从后往前找的第一个1所在的位置。

__builtin_popcount(x)

返回x的二进制形式中1的个数

__builtin_ctz

返回x的二进制形式中末尾0的个数(从后往前第一个1之后的)

以上函数都可以在结尾出加上ll来转化为对long long的函数

accumulate(a + st,a + ed,original) O(N)

对取件[st,ed]以original为初始值来求和
并且可以定义函数来定义对结构体的求和方式

atoi(char*) / stoi(string)

把字符串转化为int

fill(a + st,a + ed,value) O(N)

对数组把[st,ed]范围内转化为value值

is_sorted(a + st,a + ed) O(N)

判断数组在[st,ed]范围内是否排序好了

lower_bound(a+st,a+ed,target) / upper_bound(a+st,a+ed,target) O(logN)

在范围内lower_bound查找第一个大于等于target的值,upper_bound查找第一个大于target的值

max_element(a+st,a+ed) / min_element(a+st,a+ed)O(N)

返回数组在范围内的最大值和最小值

nth_element(a+st,a+nth,a+ed)O(N)

返回数组在范围内第nth小的值

next_permutation(a + st,a + ed)O(N)

求下一个字典序大一的排列,并且有返回值,如果是最大的排列就返回false

```prev_permutation(a + st,a + ed)````O(N)

求下一个字典序小一的排列,并且有返回值,如果是最小的排列就返回false

stable_sort()O(NlogN)

与sort一样,只不过不会改变大小相同的元素的位置

to_string

将整数或小数转化为字符串

unique()O(N)

去重

__lg(x)O(1)

l o g 2 x log_2x log2x 下取整

相关文章:

对于C++STL及其时间复杂度的总结

由于本次在山东CCPC邀请赛中&#xff0c;对于堆的时间复杂度记忆不清晰&#xff0c;导致第4题没有做出来&#xff0c;与铜牌失之交臂&#xff0c;故觉应整理STL的时间复杂度。 本文仅整理有用&#xff08;竞赛&#xff09;的stl及其用法&#xff0c;并且不阐述过于基础的内容。…...

Docker搭建FRP内网穿透服务器

使用Docker搭建一个frp内网穿透 在现代网络环境中&#xff0c;由于防火墙和NAT等原因&#xff0c;内网设备无法直接被外网访问。FRP (Fast Reverse Proxy) 是一款非常流行的内网穿透工具&#xff0c;它能够帮助我们将内网服务暴露给外网。本文将介绍如何在Linux服务器上使用Do…...

【NumPy】掌握NumPy的divide函数:执行高效的数组除法操作

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…...

您的虚拟机未能继续运行,原因是遇到一个可纠正的错误。请保留挂起状态并纠正错误,或放弃挂起状态。

镜像&#xff1a;应急响应靶机 错误信息 此虚拟机的处理器所支持的功能不同于保存虑拟机状态的虚拟机的处理器所支持的功能。 从文件"E:\XXX.vmss"还原 CPU 状态时出错。 您的虚拟机未能继续运行&#xff0c;原因是遇到一个可纠正的错误。请保留挂起状态并纠正错误…...

FPGA DMA IP核使用指南

摘要 本文旨在介绍FPGA中DMA(Direct Memory Access)IP核的使用,包括其基本框架、测试代码编写以及仿真波形的分析。DMA是一种允许外围设备直接与内存进行数据交换的技术,无需CPU的介入,从而提高了数据传输的效率。 1. 引言 在现代FPGA设计中,DMA IP核因其…...

【博客20】缤果Matlab串口调试助手V1.0(中级篇)

超级好用的Matlab串口调试助手 开发工具: MATLAB 2024a中文版 (编程语言matlab) -> Matlab APP Designer 目录 前言 一、软件概要&#xff1a; 二、软件界面&#xff1a; 1.App演示 ​ ​---- ◇♣♡♠ ---- 2.其他扩展App展示 ​编辑 三、获取 >> 源码以及G…...

南京威雅学校:2024年度大戏《Tinkerbell(小叮当)》震撼落幕

三天连演三场 两小时十六幕高潮迭起的舞台故事 一百五十余名师生台前幕后全统筹 逾千名观众现场观演 四个城市五大平台同步直播 南京威雅2024年度大戏 《Tinkerbell&#xff08;小叮当&#xff09;》震撼落幕 它以商演级别的舞台设计 宏大而精密的舞台调度 直击心灵的…...

Kotlin 函数

文章目录 函数的定义函数的返回值参数默认值 & 调用时参数指定函数作用域Lambda 表达式匿名函数内联函数扩展函数中缀函数递归函数 & 尾递归函数 函数的定义 函数可以理解成一个小小的加工厂&#xff0c;给入特定的原材料&#xff0c;它就会给出特定的产品。 fun [接…...

动态路由协议实验——RIP

动态路由协议实验——RIP 什么是RIP ​ RIP(Routing Information Protocol,路由信息协议&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;是一种动态路由选择协议&#xff0c;用于自治系统&#xff08;AS&#xff09;内的路由信息的传递。RIP协议基于…...

数据结构 | 二叉树(基本概念、性质、遍历、C代码实现)

1.树的基本概念 树是一种 非线性 的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#xff0c;称为根…...

很多Oracle中的SQL语句在EF中写不出来

很多复杂的Oracle SQL语句在Entity Framework&#xff08;EF&#xff09;中很难直接表达出来。虽然EF提供了一种方便的方式来使用C#代码查询和操作数据库&#xff0c;但它在处理某些复杂的SQL特性和优化时可能会有局限性。 以下是一些在EF中可能难以直接实现的Oracle SQL功能和…...

浏览器打开PHP文件弹出下载而不是运行代码

说明 使用phpstudy&#xff0c;极少会出现这种情况。 这里主要是帮助大家理解&#xff0c;为什么上传的木马不运行。 问题原因 首先需要理解&#xff0c;访问PHP文件弹出下载&#xff0c;说明服务端的容器&#xff08;比如Apache或者Nginx&#xff09;把文件当成了一个普通二…...

安卓自定义UI组件开发流程

安卓自定义ui组件开发流程 开发安卓自定义UI组件的流程大致可以分为以下几个步骤&#xff1a; 确定需求和设计&#xff1a; 确定需要自定义的UI组件的功能和外观。设计组件的交互逻辑和视觉效果。 创建自定义组件类&#xff1a; 创建一个新的Java类&#xff0c;继承自View、V…...

【LINUX】LINUX基础(目录结构、基本权限、基本命令)

文章目录 LINUX的目录结构LINUX的基本权限LINUX基本命令 LINUX的目录结构 /&#xff1a;表示根目录bin&#xff1a;存放二进制可执行文件(命令ls、cat、mkdir等)boot&#xff1a;存放系统引导文件dev&#xff1a;存放设备文件etc&#xff1a;存放系统配置文件home&#xff1a;…...

Aigtek功率放大器的主要性能要求有哪些

功率放大器是电子系统中的重要组件&#xff0c;用于将低功率信号放大到高功率水平。功率放大器的性能直接影响到信号的放大质量和系统的整体性能。下面西安安泰将介绍功率放大器的主要性能要求。 增益&#xff1a;功率放大器应当具有足够的增益&#xff0c;即将输入信号的幅度放…...

2024.5.29晚训参考代码

因为本套题没有BFS例题&#xff0c;所以我先把BFS模板放着 #include<bits/stdc.h> using namespace std; int n,m;//n*m的棋盘 int dis[402][402]; bool vis[402][402]; int X[]{-2,-2,-1,-1,1,1,2,2};//偏移量的表 int Y[]{-1,1,-2,2,-2,2,-1,1};//定义一个数组&…...

【计算机网络】——概述(图文并茂)

概述 一.信息时代的计算机网络二.互联网概述1.网络&#xff0c;互连网&#xff0c;互联网&#xff08;因特网&#xff09;1.网络2.互连网3.互联网&#xff08;因特网&#xff09; 2.互联网简介1.互联网发展的三个阶段2.互联网服务提供者&#xff08;ISP&#xff09;3.互联网的组…...

C语言多个源程序编译的CMakeList文件编写/源程序生成动态库

1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下&#xff1a; main.cpp中include“LCD_2inch4.h”头文件&#xff0c;而LCD_2inch4.h中include其它源程序&#xff0c;则CmakeLists.txt文件可为如下&#xff1a; # 设置项目名称 cmake_minimum_required(VERSI…...

C# list集合

一、list集合基本使用 1.添加元素 ① 单个元素添加 List<int> list new List<int>();for (int i 0; i < 3; i){list.Add(i);}//输出&#xff1a;0,1,2 ②初始化时添加元素 List<int> list2 new List<int> { 1, 2, 3 };//输出&#xff1a;0,1…...

****三次握手和四次挥手

一、三次握手 1.简要描述TCP三次握手的过程 第一次握手&#xff0c;客户端发送SYN包到服务器&#xff1b; 第二次握手&#xff0c;服务器收到SYN包&#xff0c;回复一个SYNACK包&#xff1b; 第三次握手&#xff0c;客户端收到服务器的SYNACK包后&#xff0c;回复一个ACK包…...

开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?

开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势&#xff1f; ADR药物不良反应监测系统具有多个显著的优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; 一、提高监测效率与准确性&#xff1a; 通过自动化的数据收集…...

问题排查|记录一次基于mymuduo库开发的服务器错误排查(段错误--Segmentation fault (core dumped))

问题记录&#xff1a; 在刚完成mymuduo库之后&#xff0c;写了一个简单的测试服务器&#xff0c; 但是在服务器运行后直接报错&#xff1a; cherryhcss-ecs-4995:~/mymuduo/example$ ./testserver Segmentation fault (core dumped)出现多错误这通常意味着程序试图访问其内存空…...

Mysql常用操作DQL数据库、表操作:

DQL是指MySQL数据库中的数据查询语言&#xff08;Data Query Language&#xff09;。它是用来从数据库中检索所需数据的语言。DQL允许用户通过指定查询条件和筛选条件来检索数据库中的数据&#xff0c;并以所需的方式来显示结果。DQL语句可以用于从单个表中查询数据&#xff0c…...

标题:Go语言中的YAML魔法:轻松配置你的环境

摘要&#xff1a; 本文将介绍如何在Go语言项目中使用YAML文件来管理配置&#xff0c;包括如何读取YAML文件以及如何在代码中解析和使用这些配置。 正文&#xff1a; 在编程世界中&#xff0c;配置管理是每个项目都必须面对的问题。对于Go语言项目来说&#xff0c;YAML文件是一…...

STM32高级控制定时器之输入捕获模式

目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址&#xf…...

使用 Vue 3 和 qrcode.js 开发二维码显示组件

二维码在现代应用中广泛使用&#xff0c;例如支付、身份验证、链接分享等。本文将介绍如何使用 Vue 3 和 qrcode.js 库来创建一个灵活的二维码显示组件&#xff0c;并展示如何在应用中使用它。 1. 安装必要的依赖 首先&#xff0c;我们需要安装 Vue 3 和 qrcode.js。如果你还…...

LabVIEW异步编程概述

LabVIEW异步编程是一种在图形化编程环境中处理并行任务的方法。通过异步执行&#xff0c;可以提高程序的响应速度和资源利用效率&#xff0c;使得多个任务可以独立进行而不互相干扰。 原理 LabVIEW异步编程的核心在于使用异步调用节点&#xff08;Asynchronous Call By Refer…...

【数据库】MySQL表的操作

目录 一.创建表 二.查看表 三.修改表 四.删除表 一.创建表 基本语法&#xff1a; CREATE TABLE table_name(field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 储存引擎field表示列名 datatype表示列的类型 charatcer se…...

【mybatis解决oracle查询in超过1000条数据】

1、因为代码中前人未考虑in 数据可能大于1000&#xff0c;导致现在系统报错&#xff0c;MPP low前人 直接上sql select * from table a <where><if test"list ! null and list.size > 0">and a.name in<foreach collection"list" inde…...

EasyExcel之动态表头导出不生效

今天接到一个优化需求&#xff0c;表格导出后的表头顺序和页面不一致&#xff0c;要优化成一致的。根据传入的字段&#xff0c;动态导出数据&#xff0c;并保证顺序。 我看到导出的实体类都有ExcelProperty注解&#xff0c;同时也在官网查看了这注解的含义和使用。 ExcelPrope…...

appium元素定位工具_uiautomatorviewer.bat

特点&#xff1a; uiautomatorviewer是android-sdk自带的元素定位工具uiautomatorviewer只能用于安卓系统&#xff1b;它是通过截屏分析XML布局文件方式&#xff0c;来提供控件信息的查看服务 uiautomatorviewer.bat 基本使用 路径&#xff1a;这个工具是Android SDK中自带&…...

手机离线翻译哪个好?断网翻译也能超丝滑

有时在异国他乡&#xff0c;面对语言不通的窘境&#xff0c;即便是简单的对话也变得异常困难&#xff0c;真是挑战满满&#xff01; 然而&#xff0c;能离线翻译的软件让语言障碍不再是问题&#xff0c;不必依赖网络也能轻松进行翻译啦~ 只需下载所需的语言包&#xff0c;选择…...

神器!!Python热重载调试【送源码】

在 Python 开发的路上&#xff0c;调试是我们不可避免的一环。 而今天推荐的开源项目Reloadium &#xff0c;让你在不重启程序的情况下实现代码的即时更新和调试。 &#x1f504; Reloadium 功能亮点&#xff1a; 1. 热重载魔法&#xff1a; Reloadium 不仅仅能够实现代码的…...

Flutter基础 -- Dart 语言 -- 列表集合枚举

目录 1. 列表 List 1.1 初始 1.2 声明 1.2.1 自动 1.2.2 定长 1.2.3 生成数据 1.3 属性 1.4 方法 1.4.1 添加 1.4.2 查询 1.4.3 删除 1.4.4 Range 1.4.5 洗牌 1.4.6 排序 1.4.7 复制子列表 1.4.8 操作符 2. 集合 Map 2.1 初始 2.2 声明 2.2.1 松散 2.2.2 …...

怎么花草识别?方法有三种!

怎么花草识别&#xff1f;在这个五彩斑斓的世界里&#xff0c;花草是我们生活中不可或缺的一部分。它们点缀着我们的环境&#xff0c;为我们带来无尽的美丽与惊喜。然而&#xff0c;面对众多的花草种类&#xff0c;你是否曾感到困惑和迷茫&#xff0c;不知道如何识别它们&#…...

【qt】自定义对话框

自定义对话框 一.自定义对话框的使用1.应用场景2.项目效果3.界面拖放4.模型和视图的设置5.action功能实现 二.自定义对话框的创建1.设置对话框界面2.创建对话框 三.对话框的功能与样式实现1.对话框数据的交换2.对话框的显示3.设置对话框的特性4.完成按钮的功能 四.编辑表头的对…...

汽车IVI中控开发入门及进阶(二十二):video decoder视频解码芯片

前言: 视频解码器在许多汽车、专业和消费视频应用中仍有需求。Analog Devices是模拟视频产品领域的行业领导者,提供一系列视频解码器,可将标准(SD,standard definition)和高清(HD,High definition)分辨率的模拟视频高质量转换为MIPI或TTL格式的数字视频数据。典型的应…...

混沌测试介绍

混沌测试介绍 1. 混沌测试简介 混沌测试&#xff08;Chaos Engineering&#xff09;是一种测试方法&#xff0c;通过在生产环境中故意引入故障&#xff0c;测试系统在异常情况下的表现&#xff0c;以提高系统的弹性和鲁棒性。其目标是确保系统能够在面对不可预见的事件或故障…...

python 单链表创建,遍历

# !/usr/bin/python3 # -*- coding:utf-8 -*- """ author: JHC000abcgmail.com file: 111.py time: 2024/05/30 21:37:09 desc:""" # 定义单链表结构 class ListNode:def __init__(self,value0,nextNone):self.value valueself.next nextdef _…...

【方法】如何取消PPT“以只读方式打开“?

以“只读方式”打开的PPT&#xff0c;可能会受到不同的限制&#xff0c;比如无法编辑修改内容&#xff0c;无法保存原文件等。那如何取消PPT的“只读方式”呢&#xff1f;不同形式的“只读方式”&#xff0c;取消方法不同&#xff0c;下面一起来看看吧&#xff01; “只读方式”…...

ChatTTS,语气韵律媲美真人的开源TTS模型,文字转语音界的新魁首,对标微软Azure-tts

前两天 2noise 团队开源了ChatTTS项目&#xff0c;并且释出了相关的音色模型权重&#xff0c;效果确实非常惊艳&#xff0c;让人一听难忘&#xff0c;即使摆在微软的商业级项目Azure-tts面前&#xff0c;也是毫不逊色的。 ChatTTS是专门为对话场景设计的文本转语音模型&#x…...

Django企业招聘后台管理系统开发实战四

前言 首先我们看一下产品的需求背景&#xff0c;这个产品为了解决招聘面试的过程中&#xff0c;线下面试管理效率低&#xff0c;面试过程和结果不方便跟踪的痛点 招聘管理的系统几乎是每一家中小公司都需要的产品 我们以校园招聘的面试为例子来做 MVP 产品迭代 首先我们来看一下…...

APP上架 篇一:上架资质要求

文章目录 系列文章Apple Store商店上架App官方文档资质要求费用详情Google Play商店上架App官方文档资质要求费用详情华为应用商店上架App官方文档资质要求费用详情小米应用商店上架App官方文档资质要求...

C++入门之类和对象

目录 1.C相对于C语言的一些不同的小语法 1.1命名空间 1.2C输入&输出 1.3缺省参数 1.4函数重载 1.5引用 1.6内联函数 1.7auto 1.8nullptr 2.类的引入 2.1类的内部 2.2this指针 2.3类的默认成员函数 2.3.1构造函数 2.3.2析构函数 2.3.3拷贝构造 2.4运…...

html中table的替代方案

使用插件&#xff0c;2个功能强大的table插件 DataTables | Javascript table library 专门的table处理插件&#xff0c;下载时可以配置是否支持bootstrap和jquery ui等。参数众多。表格组件 table - Layui 文档 国内的插件&#xff0c;只支持jquery&#xff0c;配合默认的layu…...

单片机的自动化编程语言:深度探索与未来展望

单片机的自动化编程语言&#xff1a;深度探索与未来展望 单片机作为现代电子设备的核心控制单元&#xff0c;其自动化编程语言的发展与应用&#xff0c;对提升设备性能、简化编程流程具有重大意义。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;对单片机的自动…...

k8s 部署 Dashboard

Dashboard 是官方提供的一个UI&#xff0c;可用于基本管理K8s资源。 # 在master节点执行# wget \ https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml vi recommended.yaml 增加 nodePort: 30001 和 type: NodePort ...... spec:p…...

HTTP/超文本传输协议(Hypertext Transfer Protocol)及HTTP协议通信步骤介绍和请求、响应阶段详解;

目录 一、HTTP/超文本传输协议 特点和功能 请求-响应模型 版本和扩展 安全性和加密 二、HTTP协议通信步骤介绍 三、请求、响应阶段详解 HTTP请求 HTTP响应 示例 一、HTTP/超文本传输协议 HTTP/超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff09;是…...

【机器学习】随机森林:深度解析与应用实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 随机森林&#xff1a;深度解析与应用实践引言1. 随机森林基础1.1 什么是随机森林…...

pytorch使用tensorboardX面板自动生成模型结构图和各类可视化图像

总结&#xff1a; 在原本代码中额外添加如下几行即可实现查看模型结构&#xff1a; from tensorboardX import SummaryWriter # 用于进行可视化# 1. 来用tensorflow进行可视化with SummaryWriter("./log", comment"sample_model_visualization") as sw: …...