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

蓝桥杯备赛笔记(一)

这里的笔记是关于蓝桥杯关键知识点的记录,有别于基础语法,很多内容只要求会用就行,无需深入掌握。

文章目录

  • 前言
  • 一、编程基础
    • 1.1 C++基础格式和版本选择
    • 1.2 输入输出
        • cin和cout:
    • 1.3 string
        • 以下是字符串的一些简介:
        • 字符串的基本操作:
  • 二、竞赛常用库函数
    • 2.1 排序
        • sort函数:
        • 使用传入第三个参数自定义比较函数:
        • 使用lambda自定义比较函数:
    • 2.2 最值查找
        • min和max函数:
        • min_element和max_element:
        • nth_element函数:
    • 2.3 二分查找
        • 整数二分查找模板
        • 浮点二分查找模板
        • 二分答案模板
  • 总结


前言

持续更新,量变产生质变


一、编程基础

1.1 C++基础格式和版本选择

这里只需要记住使用一个万能头文件即可:

#include <bits/stdc++.h> //什么都能用这个头文件
using namespace std;

基本数据类型:

int x = 3; //整数x
double d = 3.14; //浮点数(小数)
char ch = 'A'; //字符常量'A'
char s[] = "Hello"; //字符串
bool b = true; //布尔值,即真假值b。非0为真,0为假

1.2 输入输出

cin和cout:
#include <bits/stdc++.h> //万能头文件
using namespace std; //全局引用std,std里面包含了cin,cout和endl等等东西
int main(){double a,b;cin >> a >> b;//cin会自动判断变量类型cout << fixed << setprecision(3) <<a << '' << b << '\n';//fixed << setprecision(3)的意思是保留浮点数后面3位return 0;//记住最后return 0
}

fixed << setprecision(3) 意思是保留浮点数后3位

在字符或字符串中直接使用cin:

#include <bits/stdc++.h>
using namespace std;
int main(){char ch;cin >> ch;cout << ch;return 0;
}

以上代码中: 输入:a b 输出:a

#include <bits/stdc++.h>
using namespace std;
int main(){char s[10];cin >> s;cout << s;return 0;
}

以上代码中: 输入:hi nihao 输出:hi
注意!!cin无论是在字符或字符串中输入空格或者换行符就会结束

#include <bits/stdc++.h>
using namespace std;
int main(){string s;getline(cin, s);cout << s;return 0;
}

以上代码中: 输入:hi nihao 输出:hi nihao
所以我们可以结合使用string和getline来消除掉这个cin的缺点

取消同步流:
由于cin和cout自动判断变量的关系,它们的读写效率要比scanf和printf更低。
当数据量大的时候,可能导致程序运行超时,我们可以通过取消同步流来加速cin和cout,加速后效率就差不多了。

ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); //取消同步流

1.3 string

使用string需要在头文件包含该库 #include<string>

以下是字符串的一些简介:
  1. 字符串管理:string封装了字符串的存储和管理。它自动处理字符串的内存分配和释放,避免了手动管理内存的麻烦。
  2. 动态大小调整:string可以根据需要自动调整字符串的大小,在添加或删除字符时,string会自动调整内部的存储容量,确保足够的空间来容纳字符串。
  3. 安全性:它提供了越界访问检查,以避免访问超出字符串范围的字符。
  4. 迭代器支持:string支持迭代器,可以使用迭代器遍历字符串中的字符,进行字符级别的操作。
  5. 兼容性:string是C++标准库的一部分,因此广泛使用。

string的声明和初始化:

#include <bits/stdc++.h>
#include <string>
int main(){//声明并初始化一个字符串std::string str1;//使用字符串字面量初始化字符串std::string str2 = "hello, world!";//使用另一个std::string 对象来初始化字符串std::string str3 = str2;//使用部分字符串初始化字符串std::string str4 = str2.substr(0, 5);//substr(起始位置,长度)//使用字符数组初始化字符串const char* charArray = "Hello";std::string str5(charArray);//使用重复的字符初始化字符串std::string str6(5, 'A');//"AAAAA"重复5次A
}

在C++中,std::string类提供了一个成员函数c_str(),用于返回一个指向以空字符结尾的C风格字符串(即const char*类型)

字符串的基本操作:

1、获取字符串长度:

std::string str = "Hello, world!";
int length = str.length(); //或者 int length = str.size();
std::cout << "Length: " << length << std::endl;

2、拼接字符串(+或append):

std::string str1 = "Hello";
std::string str2 = "world";
std::string result1 = str1 + "," + str2;//使用+运算符
std::string result2 = str1.append(",").append(str2);//使用append函数
std::cout << "Result1 = " << result1 << std::endl;
std::cout << "Result2 = " << result2 << std::endl;

3、字符串查找(find):

std::string str = "Hello, world";
size_t pos = str.find("world"); //查找子字符串位置
if(pos != std::string::npos){ //判断是否不等于-1std::cout << "Substring found at position: " << pos << std::endl;
}
else{std::cout << "Substring not found." << std::endl;
}

4、字符串替换(replace):

std::string str = "Hello, world";
str.replace(7,5, "Universe"); //替换子字符串
//7是子串起始位置,5是要替换掉的长度
std::cout << "Result: " << str << std::endl;

5、提取子字符串(substr):

std::string str = "Hello, world";
std::string subStr = str.substr(7,5); //提取子字符串
std::cout << "Substring: " << subStr << std::endl;

6、字符串比较(compare):

std::string str1 = "Hello";
std::string str2 = "World";
int result = str1.compare(str2);//比较字符串
if(result == 0){std::cout << "String are equal." << std::endl;
} else if(result < 0){std::cout << "String 1 is less than String 2." << std::endl;
} else{std::cout << "String 1 is greater than String 2." << std::endl;
}

string重载了不等号,所以也可以直接使用s1 < s2的方式来比较string的大小,比较的规则是按照字典序大小进行比较。

字典序的比较方法是从小到大一个一个比较,一旦遇到不相等的字符就确定大小关系。

例如:
aaaa < bbbb
azz < baaa

常用的遍历string方法一共有两种:

  1. 循环枚举下标
  2. auto枚举(其中&表示取引用类型,如果对i修改将会改变原来的值)
string s = "Hello";for(int i = 0; i < s.length(); ++i) cout << s[i];//枚举循环遍历一遍string的对象s
cout << '\n';
for(auto i : s)
{cout << i;i = 'a';//此处的修改无效,因为这个i是拷贝出来的,而不是引用s的//所以这里只是赋值到拷贝出来的i里面,而这个i是在局部变量内,这个for循环结束就消亡了
}
cout << '\n';
//此时s = "Hello"
for(auto &i : s)
{cout << i;//此时再遍历输出s字符串还是Helloi = 'a';//此处修改会改变s的字符值
}
cout << '\n';
//此时s= "aaaaa"
cout << s << '\n';

二、竞赛常用库函数

2.1 排序

sort函数:

sort函数包含在头文件<algorithm>中
在使用前需要使用#include <algorithm>或万能头文件#include <bits/stdc++.h>
sort是C++标准库中的一个函数模板,用于对指定范围内的元素进行排序。
sort算法使用的是快速排序或者类似快速排序的改进算法,具有较好的平均时间复杂度,一般为O(nlogn)。
sort的用法:
sort(起始地址, 结束地址的下一位, *比较函数);
比较函数一般默认用的小于号(<)

#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int a[1000];
int n;
//读取数组大小
cin >> n;
//读取元素
for(int i = 1; i <= n; ++i) cin >> a[i];//对数组进行排序
sort(a+1, a+n+1); //[1, n+1) 左闭右开
//   a[1], a[n+1]//输出
for(int i = 1; i <= n; ++i) cout << a[i] << ' ';
return 0;
}

sort(起始地址, 结束地址的下一位, *比较函数);

#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//初始化v
//这里是模板类vector,需要使用万能头文件或#include <vector>
vector<int> v = {5, 1, 3, 9, 11};//对数组进行排序
sort(v.begin(), v.end());//输出
for(int i = 0; i < v.size(); ++i) cout << v[i] << ' ';
//for (auto i : v)cout << i << ' ';//使用auto进行排序也可以
return 0;
}

由于sort默认用小于号进行排序,如果想要自定义比较规则,可以传入第三个参数,这个参数可以是函数或者lambda表达式。

使用传入第三个参数自定义比较函数:
#include <bits/stdc++.h>
using namespace std;
bool cmp(const int &u, const int &v)
{return u > v;
}
int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//初始化vvector<int> v = {5, 1, 3, 9, 11};//对数组进行排序,降序排序sort(v.begin(), v.end(), cmp);//						传入函数名//输出for(int i = 0; i<v.size(); ++i) cout << v[i] << ' ';return 0;
}
使用lambda自定义比较函数:
#include <bits/stdc++.h>
using namespace std;
int main(){//初始化vvector<int> v = {5, 1, 3, 9, 11};//对数组进行排序,降序排序,这里使用lambda表达式sort(v.begin(), v.end(), [](const int &u, const int &v){return u > v;});for(int i = 0; i<v.size(); ++i) cout << v[i] << ' ';return 0;
}

在[ ]里面不写东西代表把数组内的东西以拷贝的形式放进去,如果在[ ]内加上&后( [&] )就会变成把v里面的变量都以引用(&)类型的格式放进去。

下面是一个本人觉得很妙的操作:

for(int i = 1; i <= n; ++i) cout << a[i] << " \n"[i == n];

首先,这里我们需要意识到字符串其实就是一个字符数组。在这段代码行中的" \n"[i == n]巧妙的利用了判断符号来确认for循环是否到结尾了,如果到结尾了此时判断会返回1(真),就会自动输出\n换行。如果没到结尾,即i不等于n,此时返回的是0(假),则输出空格。
在这个字符串中下标为0对应的是" “(空格),下标为1对应的是”\n"(回车换行符)

以下是使用了这个操作的题目:
在这里插入图片描述

2.2 最值查找

min和max函数:

min(3, 5) = 3
min({1, 2, 3, 4}) = 1
max(a, b)返回a和b中较大的那个值,只能传入两个值,或传入一个列表。
例如:
max(7, 5) = 7
max({1, 2, 3, 4}) = 4
时间复杂度为O(1),传入参数为数组时时间复杂度为O(n),n为数组大小。
min和max函数是在最值操作时最常用的操作。

min_element和max_element:

min_element(st, ed)返回地址[st, ed)中最小的那个值的下标(迭代器),传入参数为两个地址或迭代器。
max_element(st, ed)返回地址[st, ed)中最大的那个值的下标(迭代器),传入参数为两个地址或迭代器。

时间复杂度均为O(n),n为数组大小(由传入的参数决定)

//初始化v
vector<int> v = {5, 1, 3, 9, 11};//输出最大的元素,*表示解引用,即通过地址(迭代器)得到值
cout << *max_element(v.begin(), v.end()) << '\n';
nth_element函数:

nth_element(st, k, ed)
进行部分排序,返回值为void()
传入参数为三个地址或迭代器。其中第二个参数位置的元素将处于正确位置,其他位置元素的位置可能是任意的,但前面的都比它小,后面的后比它大。时间复杂度O(n)。

//初始化v
vector<int> v = {5, 1, 7, 3, 10, 18, 9};//输出最大的元素,*表示解引用,即通过地址(迭代器)得到值
nth_element(v.begin(), v.begin() + 3, v.end());
//这里v[3]的位置将会位于排序后的位置,其他的任意
for(auto &i : v) cout << i << ' ';

课后题目:
在这里插入图片描述

2.3 二分查找

二分法是一种高效的查找方法,它通过将问题的搜索范围一分为二(两边有明显的区别),迭代地缩小搜索范围,直到找到目标或确定目标不存在。
二分法适用于有序数据集合,并且每次迭代可以将搜索范围缩小一半。
二分法本质也是枚举,但和暴力枚举不同,二分法利用数据结构的单调性减少了很多不必要的枚举,从而极大的提高了效率,一般可以将O(n)的枚举优化到O(logn)。
常见的二分类型有:

  1. 整数二分
  2. 浮点二分
  3. 二分答案(最常见)
整数二分查找模板
//找到升序数组a中的x第一次出现的位置
int l = 0, r = 1e9;
//注意这里的判断条件,这样可以保证l,r最终一定收敛到分界点
while(l + 1 != r)//l,r相邻的话退出
{int mid = (l + r) / 2;//如果a为升序,说明mid偏大了,需要减小mid,就只能将r变小,即r = midif(a[mid] >= x) r = mid;else l = mid;//否则l = mid,始终保持在所属区域
}
cout << r << '\n';
浮点二分查找模板
//计算单调函数f(x)的零点
double l = 0, r = 1e9, eps = 1e-6;
//注意这里的判断条件,这样可以保证l,r最终一定收敛到分界点
while(r - l >= eps)//eps是一个极小量,设置为1e-6比较适合
{double mid = (l + r) / 2;//f(x)单调递增,f(mid) >= 0,说明mid偏大了,需要减小mid,就只能将r变小,即r = midif(f(mid) >= 0) r = mid;else l = mid;
}
//最后返回l,r差别不大
cout << r << '\n';
二分答案模板
bool check(int mid)
{bool res = true;//其他内容return res;
}
int main()
{int l = 0, r = 1e9;while(l + 1 != r){int mid = (l + r) / 2;//具体写法需要根据题意修改if(check[mid] >= x) l = mid;else r = mid;
}
cout << l << '\n';//具体输出的内容需要根据题意判断

总结

相关文章:

蓝桥杯备赛笔记(一)

这里的笔记是关于蓝桥杯关键知识点的记录&#xff0c;有别于基础语法&#xff0c;很多内容只要求会用就行&#xff0c;无需深入掌握。 文章目录 前言一、编程基础1.1 C基础格式和版本选择1.2 输入输出cin和cout&#xff1a; 1.3 string以下是字符串的一些简介&#xff1a;字符串…...

Spring Boot【四】

单例bean中使用多例bean 1.lookup-method方式实现 当serviceB中调用getServiceA的时候&#xff0c;系统自动将这个方法拦截&#xff0c;然后去spring容器中查找对应的serviceA对象然后返回 2.replaced-method&#xff1a;方法替换 我们可以对serviceB这个bean中的getServiceA…...

linux基础1

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

DAMODEL丹摩|部署FLUX.1+ComfyUI实战教程

本文仅做测评体验&#xff0c;非广告。 文章目录 1. FLUX.1简介2. 实战2. 1 创建资源2. 1 ComfyUI的部署操作2. 3 部署FLUX.1 3. 测试5. 释放资源4. 结语 1. FLUX.1简介 FLUX.1是由黑森林实验室&#xff08;Black Forest Labs&#xff09;开发的开源AI图像生成模型。它拥有12…...

Python语法基础(三)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们这篇文章来说一下函数的返回值和匿名函数 函数的返回值 我们先来看下面的这一段函数的定义代码 # 1、返回值的意义 def func1():print(111111111------start)num166print…...

计算分数的浮点数值

计算分数的浮点数值 C语言代码C 代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 两个整数a和b分别作为分子和分母&#xff0c;既分数 a/b &#xff0c;求它的浮点数值&#xff08;双精度浮点数&#xff0c;保留小数点…...

Staircase mesh” 和 Conformal mesh区别

一、Staircase Mesh&#xff08;阶梯状网格&#xff09; 1.1 含义 阶梯状网格就像是用一个个小方块或者矩形拼接起来的网格。在对几何形状进行划分网格时&#xff0c;它会以一种比较简单直接的方式&#xff0c;使得网格边界呈现出像楼梯台阶一样的形状。比如在模拟一个圆形物体…...

探索未来工业的核心:数字孪生技术深度解析

经过数十年的发展&#xff0c;建模和模拟已成为工程和科学的基石。人们针对改进建模的计算方法进行了大量的研究和开发工作。这些计算机模型对系统设计非常有用&#xff0c;可以削减实验和测试的高昂成本。然而在实操中&#xff0c;还需要跟踪系统随时间的演变情况&#xff0c;…...

dns 服务器简单介绍

dns 服务器分类&#xff1a; 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯&#xff1a;DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里&#xf…...

SQL基础入门——C++与SQL连接实践

在开发中&#xff0c;C与SQL数据库的连接和交互是非常常见的需求。通过将C与SQL数据库连接起来&#xff0c;我们可以轻松地执行数据存取、查询、更新等操作。C与数据库的集成通常依赖于数据库的连接器或驱动程序&#xff0c;本章节将详细讲解如何在C中使用MySQL Connector与SQL…...

对max_seq_length参数的理解,基于open-instruct框架:中英文解释

使用open-instruct (https://github.com/allenai/open-instruct )框架&#xff0c;对其中的max_seq_length参数的理解记录下来。 bash脚本内容如下&#xff1a; # 设置模型和训练参数 MODEL_NAMEgoogle/gemma-2-2b MACHINE_RANK0 MAIN_PROCESS_IP127.0.0.1 MAIN_PROCESS_PORT2…...

似然分布(Likelihood Distribution)和似然函数(Likelihood Function)有什么区别?中英双语

中文版 在统计学中&#xff0c;似然分布&#xff08;Likelihood Distribution&#xff09;和似然函数&#xff08;Likelihood Function&#xff09;是两个相关但有所不同的概念。它们都涉及给定参数的情况下&#xff0c;数据出现的概率&#xff0c;但是它们的使用方式和含义有…...

LINUX2.4.x网络安全框架

在分析LINUX2.4.x网络安全的实现之前先简介一下它里面包括的几个重要概念&#xff1a;netfilter、iptables、match、target、nf_sockopt_ops、网络安全功能点的实现。详解会在后面的分析中讲到。 首先是netfilter&#xff0c;它定义了协议栈中的检查点和在检查点上引用的数据结…...

Python毕业设计选题:基于django+vue的智能停车系统的设计与实现

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 车主管理 车辆信息管理 车位信息管理 车位类型管理 系统…...

AI界的信仰危机:单靠“规模化”智能增长的假设,正在面临挑战

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

JMeter 并发策略-针对准点秒杀场景的压测实现

一、场景的压测实现 1&#xff0c;创建线程组&#xff0c;10并发用户执行5次&#xff1b; 2&#xff0c;创建 Synchronizing Timer 元件,用于同步线程&#xff0c;设置同步元件 Synchronizing Timer 3&#xff0c;创建 http 请求4&#xff0c;创建 view results in table 元件…...

【如何提升代码工程质量】code review篇

应该对于基本上所有软件相关的公司来说&#xff0c;都有committer机制&#xff0c;即代码写好之后会提交合并请求&#xff0c;待相关人员code review通过后再进行合入&#xff0c;所以code review就是代码合入代码仓库的最后一道关卡&#xff0c;对于代码质量的影响也是不容忽视…...

1041.困于环中的机器人

题目&#xff1a; 解题思路; 由于机器人会一直重复指令&#xff0c;存在重复多次指令才回到原点的情况&#xff0c;需要对不同情况经行分析。 当执行一次指令后回到原点&#xff0c;则机器人永远无法回到原点。当执行一次指令后不回到原点&#xff0c;只有方向向北的无法在多次…...

Python实现IP代理池

文章目录 Python实现IP代理池一、引言二、步骤一&#xff1a;获取代理IP1、第一步&#xff1a;爬取代理IP2、第二步&#xff1a;验证代理IP的有效性 三、步骤二&#xff1a;构建IP代理池四、使用示例1、完整的使用示例2、注意事项3、处理网络问题 五、总结 Python实现IP代理池 …...

【Linux网络编程】第二弹---Socket编程入门指南:从IP、端口号到传输层协议及编程接口全解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Socket 编程预备 1.1、理解源 IP 和目的 IP 1.2、认识端口号 1.2.1、端口号范围划分 1.2.2、理解 &q…...

【机器学习】机器学习学习笔记 - 监督学习 - 多项式回归决策树回归 - 03

多项式回归 解决线性回归的准备性不足问题(线性回归只能是直线&#xff0c;多项式回归引入多项式可以是曲线)通过对预测值进行多项式转换, 使得回归模型可以是非线性的多项式回归的优点是可以处理非线性的数据多项式回归的缺点是它对数据进行了多项式转换 加菲工具&#xff0…...

篡改猴(Tampermonkey)使用指南:为您的浏览器增添超级能力

篡改猴&#xff08;Tampermonkey&#xff09;使用指南&#xff1a;为您的浏览器增添超级能力 篡改猴&#xff08;Tampermonkey&#xff09; 是一款流行的用户脚本管理工具&#xff0c;可以在浏览器中安装和运行用户脚本&#xff0c;从而增强或自定义网页的功能。无论是去广告、…...

23省赛区块链应用与维护(房屋租凭【下】)

23省赛区块链应用与维护(房屋租凭) 背景描述 随着异地务工人员的增多,房屋租赁成为一个广阔市场。目前,现有技术中的房屋租赁是由房主发布租赁信息,租赁信息发布在房屋中介或租赁软件,租客获取租赁信息后,现场看房,并签订纸质的房屋租赁合同,房屋租赁费用通过中介或…...

Java中三种常用布局方式

引言 在Java Swing和JavaFX中&#xff0c;布局管理器&#xff08;Layout Managers&#xff09;用于控制组件&#xff08;如按钮、文本框等&#xff09;在容器&#xff08;如窗口、面板等&#xff09;内的位置和大小。下面介绍Java Swing中常用的三种布局方式&#xff1a; 1. Fl…...

06_数据类型

数据类型 数据类型分类 JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值和第八种 BigInt类型,当前课程暂不涉及) 据类型分类 原始类型(基础类型) var age = 20, var name = 尚学堂"; var le…...

及时+准确|主动元数据平台在监管报送场景中的应用实践

面对海量的数据报送需求和日益严格的监管要求&#xff0c;如何实现监管报送的全链路自动化数据质量保障&#xff0c;是金融机构亟待解决的重要课题。本文旨在介绍一种全新的监管报送场景方案&#xff0c;帮助金融机构通过“一键溯源与口径自动盘点、指标同源自动化分析、全链路…...

[python脚本处理文件入门]-18.使用Python进行PDF文件的合并与拆分

哈喽,大家好,我是木头左! Python PDF处理库概览 1. PyPDF2 PyPDF2是一个纯Python编写的库,用于PDF文件的读写和操作。它提供了丰富的功能,包括PDF文件的合并、拆分、加密、解密等。PyPDF2的安装非常简单,只需通过pip即可安装: pip install PyPDF2安装完成后,你就可以…...

4、常量和进制转换

1、常量 1.1、常量 常量是在程序运行中值不能内改变&#xff08;常数&#xff09;。 整型:12 55 实型:21.5 字符型常量: ‘A’ 1.2、常量不同进制表示 常量数据在计算机中除了用 十进制 表示&#xff0c;还可以用 二进制、八进制、十六进制表示。 十进制数据&…...

C++:探索哈希表秘密之哈希桶实现哈希

文章目录 前言一、链地址法概念二、哈希表扩容三、哈希桶插入逻辑四、析构函数五、删除逻辑六、查找七、链地址法代码实现总结 前言 前面我们用开放定址法代码实现了哈希表&#xff1a; C&#xff1a;揭秘哈希&#xff1a;提升查找效率的终极技巧_1 对于开放定址法来说&#…...

java函数式编程和Lambda表达式

https://www.bilibili.com/video/BV1fz421C7tj?spm_id_from333.788.videopod.episodes&vd_source12d5954938d20d50645e227a6a728c76 如果一个接口中只有一个方法&#xff0c;那么就可以函数对象化&#xff1a; interface Add {int add(int a, int b);}Add add (a, b) -&…...

【线程】Java多线程代码案例(2)

【线程】Java多线程代码案例&#xff08;2&#xff09; 一、定时器的实现1.1Java标准库定时器1.2 定时器的实现 二、线程池的实现2.1 线程池2.2 Java标准库中的线程池2.3 线程池的实现 一、定时器的实现 1.1Java标准库定时器 import java.util.Timer; import java.util.Timer…...

IOU Loss详解

IoU&#xff08;Intersection over Union是目标检测中常用的指标&#xff0c;用于评估预测框和真实框的重叠程度。基于 IoU 的损失函数&#xff08;IoU Loss&#xff09;是通过优化 IoU 值来提升模型预测框的精度。 IoU 的计算公式 给定预测框 ( B_p ) 和真实框 ( B_g )&#…...

nfs服务器

1、简介 NFS &#xff08;Network File System&#xff0c;网络文件系统&#xff09;是FreeBSD支持的文件系统中的一种&#xff0c;它允许网络中的计 算机&#xff08;不同的计算机、不同的操作系统&#xff09;之间通过TCP/IP网络共享资源&#xff0c;主要在unix系列操作系统上…...

Diving into the STM32 HAL----- IWDG and WWDG Timers笔记

墨菲定律指出&#xff0c;任何可能出错的事情都会出错。尤其是对于嵌入式系统来说&#xff0c;情况尤其如此。除了硬件故障也会对软件产生影响外&#xff0c;即使是最仔细的设计也可能会出现一些意外情况&#xff0c;导致我们设备的异常行为。这可能会产生重大成本&#xff0c;…...

使用statefulset管理pod

deployment主要管理无状态的pod&#xff0c;就算需要磁盘也是期望做动态扩容的。而对于那种有状态需要存储数据的&#xff0c;如log、数据库、消息中间件需要持久化数据的&#xff0c;则建议使用StatefulSet&#xff0c;我们的pod现在扩充了pv和pvc&#xff0c;那就使用Statefu…...

6个AI生成PPT的网站,pptai一键生成

演讲和展示PPT是当今办公和学习中的重要组成部分&#xff0c;无论是工作汇报、发表研究成果&#xff0c;还是课件培训&#xff0c;一款精心制作的PPT能够有效吸引观众的参与&#xff0c;并将你的信息深入人心。借助不断进步的人工智能技术&#xff0c;众多免费的AI PPT生成器可…...

【力扣】541.反转字符串2

问题描述 思路解析 每当字符达到2*k的时候&#xff0c;判断&#xff0c;同时若剩余字符>k,只对前k个进行判断&#xff08;这是重点&#xff09;因为字符串是不可变变量&#xff0c;所以将其转化为字符串数组&#xff0c;最后才将结果重新转变为字符串 字符串->字符数组 …...

如何优雅的用PyQt访问http(仅供参考)

使用pydantic或dataclaass创建一个数据存储对象 第一种 # coding: utf-8 from typing import Anyimport requests from pydantic import Field, BaseModelclass ResponseModel(BaseModel):status: bool Field(True, description"响应状态")message: str Field(请求…...

小程序租赁系统开发的优势与应用解析

内容概要 随着科技的迅猛发展&#xff0c;小程序租赁系统应运而生&#xff0c;成为许多企业优化业务的重要工具。首先&#xff0c;它提升了用户体验。想象一下&#xff0c;用户只需轻轻一点&#xff0c;就能够浏览和租赁心仪的商品&#xff0c;这种便捷的过程使繁琐的操作大大…...

Group Convolution(分组卷积)

分组卷积的优点&#xff1a; 减少参数数量&#xff1a; 在分组卷积中&#xff0c;每个分组只与一部分输入通道进行卷积运算&#xff0c;这意味着模型的参数数量会减少。例如&#xff0c;如果一个卷积层有8个输入通道和8个输出通道&#xff0c;且不使用分组&#xff0c;那么将有…...

uniapp在H5使用vue-router路由返回上一页不会触发销毁函数解决方法

问题&#xff1a;uniapp在H5使用vue-router路由&#xff0c;如果在H5平台上进行页面刷新操作&#xff0c;再返回上一页&#xff0c;可能会遇到beforeDestroy、destroyed、onUnload生命周期钩子不被触发的问题。这是因为在H5中&#xff0c;页面的刷新实际上是整个应用的重新加载…...

YOLOv8配置文件应该如何命名?

文末有重点 1.配置文件解析代码yolov8/ultralytics/nn/tasks.py 如下&#xff1a; def yaml_model_load(path):"""Load a YOLOv8 model from a YAML file."""import repath Path(path)if path.stem in (fyolov{d}{x}6 for x in nsmlx for d i…...

扫雷-完整源码(C语言实现)

云边有个稻草人-CSDN博客 在学完C语言函数之后&#xff0c;我们就有能力去实现简易版扫雷游戏了&#xff08;成就感满满&#xff09;&#xff0c;下面是扫雷游戏的源码&#xff0c;快试一试效果如何吧&#xff01; 在test.c里面进行扫雷游戏的测试&#xff0c;game.h和game.c…...

数据库(MySQL黑马)

基础篇 MySQL概述 数据库概述 数据库相关概念 主流的关系型数据库管理系统 MySQL数据库的安装与启动 下载&#xff1a;MySQL :: MySQL Community Downloads 安装步骤 MySQL―8.0.40超详细保姆级安装教程_mysql8.0.40安装教程-CSDN博客文章浏览阅读1k次。_mysql8.0.40安装教…...

UE5 Line Trace By Channel(通道线条追踪)节点

在 Unreal Engine 5 (UE5) 中&#xff0c;Line Trace By Channel 是一个常用于进行物理射线检测&#xff08;raycasting&#xff09;的节点。它会沿着一条从起点到终点的直线发射一条射线&#xff0c;并检测射线与世界中任何物体的碰撞。这个节点广泛应用于枪械射击、检测物体、…...

How to use the ‘git log‘ command to get change log for each file?

1. Using git log command #!/bin/bash# 目标文件名 output_file"git_log.csv"# 打印 CSV 文件的标题行 echo "CommitID,Author,Author Email,Date,Added-Lines Removed-Lines File" > $output_file echo "CommitID,Author,Author Email,Date,Add…...

node.js中实现router模块化管理

index.js const express require(express); const app express()// 导入路由模块 const router require(./router/index)// 注册路由模块 app.use(router)app.listen(3000, ()>{console.log(http://127.0.0.1:3000) })router/index.js const express require(express…...

突破性算法:让无人机集群在狭窄空间内穿针引线

导读 在建筑救援、森林搜索等任务中&#xff0c;无人机集群经常会遇到狭窄空间限制和动态障碍物变化等挑战。这些挑战会导致集群内部冲突&#xff0c;或在执行任务时因避让动态障碍物而导致系统混乱。实际应用场景和任务的严格特征往往使得全局搜索难以优化&#xff0c;而局部避…...

人工智能如何改变你的生活?

在我们所处的这个快节奏的世界里&#xff0c;科技融入日常生活已然成为司空见惯的事&#xff0c;并且切实成为了我们生活的一部分。在这场科技变革中&#xff0c;最具变革性的角色之一便是人工智能&#xff08;AI&#xff09;。从我们清晨醒来直至夜晚入睡&#xff0c;人工智能…...

C语言main()函数

C语言main()函数 argc&#xff08;argument count&#xff09; 在C或C程序中&#xff0c;argc&#xff08;argument count的缩写&#xff09;是一个由程序运行时环境自动提供的整数&#xff0c;用于指示传递给main函数的命令行参数的数量。因此&#xff0c;不需要&#xff08…...