穿着西裤做的网站/郑州网站推广技术

穿着西裤做的网站,郑州网站推广技术,做网站不难吧,做网站需要那些编程语言片头 嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(六),练习相关的数组习题,准备好了吗?咱们开始咯! 第1题 数组的左方区域 这道题,实质上是找规律,…
片头

嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(六),练习相关的数组习题,准备好了吗?咱们开始咯!


第1题  数组的左方区域

这道题,实质上是找规律,我们观察到,可以将绿色的区域分成上下2个部分,因此,我们可以列出2张表。

左方区域---上半部分
ij
10
20~1
30~2
40~3
50~4
i0 ~ i-1

再看另一张表

左方区域---下半部分
ij
60~4
70~3
80~2
90~1
100
i0 ~ 10-i

掌握规律后,一目了然,这道题的代码如下:

//数组的左方区域
//输入一个二维数组m[12][12],根据输入的要求
//求出二维数组的左方区域元素的平均值或元素的和
//数组的2条对角线将数组分为上下左右四个部分
//黄色部分为对角线,绿色部分为左方区域
//第一行输入一个大写字母,若为's',则表示需要求出左方部分的元素的和
//若为'm',则表示需要求出左方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中,第 i+1 行的第 j+1 列表示数组元素m[i][j]
//输出一个数,表示所求的平均数或元素的和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for ( i = 0; i < 12; i++) {for ( j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for ( i = 1; i <= 5; i++) {for (j = 0; j <= i - 1; j++) {sum += m[i][j];num++;}}for (i = 6; i <= 10; i++) {for (j = 0; j <= 10 - i; j++) {sum += m[i][j];num++;}}if (t == 's') printf("%.1lf\n", sum);else printf("%.1lf\n", sum / num);return 0;
}

第2题  平方矩阵 I

比如:

emmm,这道题,肯定不想让我们直接使用printf输出。我们需要寻找规律

举个例子呗~

因此,本道题的代码如下:(注意:取最小值时,需要引用头文件#include<math.h>)

//平方矩阵 I
//输入整数n,输出一个n阶的回字形二维数组
//数组的最外层位1,次外层为2,以此类推
//输入包含多行,每行包含1个整数n
//当输入行为n=0时,表示输入结束,且该行无需做任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个整数占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行int main() {int n;while (cin >> n, n) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {int up = i, down = n - i + 1, left = j, right = n - j + 1;cout << min(min(up, down), min(left, right)) << " ";}cout << endl;}}return 0;
}

第3题  数组变换

   哈哈~这道题,先来一个小学生都看得懂的方法:

//数组变换
//输入一个长度为20的整数数组n
//将整个数组翻转,使得第一个元素成为倒数第一个元素
//第二个元素成为倒数第二个元素,...,倒数第二个元素成为第二个元素
//倒数第一个元素成为第一个元素,输出翻转后的数组
//输入包含20个整数,每个数占一行
//输出新数组中的所有元素,每个元素占一行
//输出格式为"N[i]=x",其中i为元素编号(从0开始),x为元素的值int main() {int n[20];int b[20];int i, j;for (i = 0; i < 20; i++)    //往原数组中添加元素{    cin >> n[i];}for (i = 19, j = 0; i >= 0; i--, j++) //将原数组里面的元素拷贝到新数组中{   b[j] = n[i];}for (i = 0; i < 20; i++)   //输出新数组里面的元素{    printf("N[%d] = %d\n", i, b[i]);}return 0;
}

我们还可以采用另外一种方法,其中就是旋转数组的最初版本。定义reverse函数,用双指针法交换首尾元素,当它们相遇或错过时,循环结束。

代码如下:

void Reverse(int a[], int left,int right) {while (left < right) {int temp = a[left];a[left] = a[right];a[right] = temp;left++;right--;}
}int main() {int n[20];int i;for (i = 0; i < 20; i++) {cin >> n[i];}Reverse(n, 0, 19);for (i = 0; i < 20; i++) {printf("N[%d] = %d\n", i, n[i]);}cout << endl;return 0;
}

第4题  斐波那契数列

斐波那契数列,是我们的老朋友啦!之前的习题中,见过很多次。今天再来认识一下~

f(0) = 0,f(1)=1,

f(2) = f(0) + f(1) = 1

f(3) = f(1) + f(2) = 2

f(4) = f(2) + f(3) = 3

f(5) = f(3) + f(4) = 5

......

f(n) = f(n-2) + f(n-1)

可以看出,从第2项开始,每一项 = 前2项之和

这道题,是想让我们求斐波那契数列的第n项,但是不止输出1次,而是输出t次(t表示实验次数)

这就需要我们事先把斐波那契数组准备好,将数字填进数组。再根据输入的第n项,输出Fib(n),这样循环t次。

代码如下:

//斐波那契数列
//输入整数n,求出斐波那契数列中的第n项是多少
//斐波那契数列的第0项是0,第1项是1
//从第2项开始的每一项都等于前2项之和
//输入第一行包含整数t,表示共有t个测试数据
//接下来的t行,每行包含一个整数n
//每个测试数据输出一个结果,每个结果占一行
//结果格式为"Fib(n)=x",其中,n为项数,x为第n项的值int main() {int t;	 //表示共有t个测试数据cin >> t;int n;  //求出斐波那契数列中的第n项是多少long long Fib[60];//数组的元素类型必须是long long//如果为int,元素会超过int类型的范围,导致溢出Fib[0] = 0;Fib[1] = 1;for (int i = 2; i < 60; i++) {Fib[i] = Fib[i - 1] + Fib[i - 2];}while (t--) {cin >> n;printf("Fib(%d) = %lld\n", n, Fib[n]);}return 0;
}

在这里,注意:二维数组Fib的元素类型必须为long long。如果为int类型,元素可能会超过int类型的范围,导致溢出。


第5题  最小数和它的位置

这道题,我们可以使用擂台法。将第一个元素保存到临时变量里面,后面的元素依次进行比较,如果后面的某一个元素比第一个元素小,则更新最小数的值以及位置

代码如下:

//最小数和它的位置
//输入一个整数n和一个长度为n的整数数组x
//请你找出数组中最小的元素,并输出它的值和下标
//注意: 如果有多个最小值,则返回下标最小的那个
//输入第一行包含整数n
//第二行包含n个用空格隔开的整数x[i]
//第一行输出"Minimum value: x",其中x为数组元素最小值
//第二行输出"Position: y",其中y为最小值元素的下标(下标从0开始计数)int main() {int n;cin >> n;int a[1001];int i;for (i = 0; i < n; i++) {cin >> a[i];}int min = a[0];int min_i = 0;for (i = 1; i < n; i++) {if (a[i] < min) {min = a[i];min_i = i;}}printf("Minimum value: %d\n", min);printf("Position: %d\n", min_i);return 0;
}

第6题  数组中的列

求某一列的元素的平均值或元素的和,那么列不变,行数从 0~11依次相加。

代码如下:

//数组中的列
//输入一个二维数组m[12][12],根据输入的要求
//求出二维数组中某一列的元素的平均值或元素的和
//第一行输入整数c,表示所求的具体列数(列数从0开始计数)
//第二行包含1个字母,若为's',则表示需要求出第c列的元素的和
//若为'm',则表示需要求出第c列的元素的平均值
//接下来的12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第 i+1 行的第 j+1 个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或元素的和的值,保留一位小数int main() { int c;	 //表示所求的具体列数(列数从0开始计数)cin >> c;char t;cin >> t;double m[12][12];for (int i = 0; i < 12; i++) {for (int j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (int i = 0; i < 12; i++) {sum += m[i][c];num++;}if (t == 's') printf("sum = %.1lf\n", sum);else printf("average = %.1lf\n", sum / num);return 0;
}

第7题  数组的右下半部分

这道题,其实是寻找行数和列数的规律

ij
111
210~11
39~11
48~11
57~11
66~11
75~11
84~11
93~11
102~11
111~11
i12-i ~ 11

因此,行数和列数的规律:行数的取值范围1~11,列数的起始位置为12-i,结束位置为11

代码如下:

//数组的右下半部分
//输入一个二维数组m[12][12]
//求二维数组的右下半部分元素的平均值或元素的和
//右下半部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出右下半部分的元素的和
//若为'm',则表示需求出右下半部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 1; i <= 11; i++) {for (j = 12 - i; j <= 11; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("average = %.1lf\n", sum / num);return 0;
}

第8题  数组的左下半部分

这道题,同样是寻找行数和列数的关系

ij
10
20~1
30~2
40~3
50~4
60~5
70~6
80~7
90~8
100~9
110~10
i0 ~ i-1

因此,行数和列数的规律:行数的取值范围1~11,列数的起始位置为0,结束位置在i-1

代码如下:

//数组的左下半部分
//输入一个二维数组m[12][12]
//求二维数组的左下半部分元素的平均值或元素的和
//左下半部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出左下半部分的元素的和
//若为'm',则表示需求出左下半部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 1; i <= 11; i++) {for (j = 0; j <= i - 1; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}

第9题  数组的下方区域

这道题,同样是寻找行数和列数的规律:

ij
75~6
84~7
93~8
102~9
111~10
i12-i ~ i-1

 通过表格,我们发现行数的取值范围:7~11,列数的起始位置:12-i,结束位置:i-1

代码如下:

//数组的下方区域
//输入一个二维数组m[12][12]
//求二维数组的下方部分元素的平均值或元素的和
//下方部分部分指对角线下方的部分
//第一行输入一个大写字母,若为's',则表示需要求出下方部分的元素的和
//若为'm',则表示需求出下方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}double sum = 0;int num = 0;for (i = 7; i <= 11; i++) {for (j = 12 - i; j <= i - 1; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}

第10题  数组的右方区域

这道题,同样是寻找行数和列数的规律,我们可以把阴影部分分成上下2块区域

右方区域---上方部分
ij
111
210~11
39~11
4

8~11

57~11
i12-i ~ 11

 上面是上方部分行数和列数之间的关系,接下来我们看看下方部分:

右方区域---下方部分
ij
67~11
78~11
89~11
910~11
1011
ii+1 ~ 11

通过表格,我们可以发现:上方部分:行数的取值范围:1~5,列数的起始位置:12-i,结束位置:11;下方部分:行数的取值范围:6~10,列数的起始位置:i+1,结束位置:11

代码如下:

//数组的右方区域
//输入一个二维数组m[12][12]
//求二维数组的右方部分元素的平均值或元素的和
//右方部分部分指对角线右方的部分
//第一行输入一个大写字母,若为's',则表示需要求出右方部分的元素的和
//若为'm',则表示需求出右方部分的元素的平均值
//接下来12行,每行包含12个用空格隔开的浮点数,表示这个二维数组
//其中第i+1行的第j+1个数表示数组元素m[i][j]
//输出1个数,表示所求的平均数或和的值,保留1位小数int main() {char t;cin >> t;double m[12][12];int i, j;for (i = 0; i < 12; i++) {for (j = 0; j < 12; j++) {cin >> m[i][j];}}//右方区域//上double sum = 0;int num = 0;for (i = 1; i <= 5; i++) {for (j = 12 - i; j <= 11; j++) {sum += m[i][j];num++;}}//下for (i = 6; i <= 10; i++) {for (j = i + 1; j <= 11; j++) {sum += m[i][j];num++;}}if (t == 's') printf("sum = %.1lf\n", sum);else printf("ave = %.1lf\n", sum / num);return 0;
}

第11题  平方矩阵Ⅱ

 我们一起来看看例子吧~

乍一看,好像看不出来有啥规律,咋整?

嘿嘿,我们单独拿一个例子出来,你就明白了

因此,本道题的代码如下:

//平方矩阵Ⅱ
//输入整数n,输出一个n阶的二维数组
//数组的形式参照样例
//输入包含多行,每行包含一个整数n
//当输入行为 n=0 时,表示输入结束,且该行无需作任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个数组占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行
int main() {int n;int a[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {a[i][i] = 1;    //右对角线上的元素全为"1"for (int j = i + 1, k = 2; j < n; j++, k++) a[i][j] = k;  //纵向for (int m = i + 1, k = 2; m < n; m++, k++) a[m][i] = k;  //横向}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << a[i][j] << " ";}cout << endl;}}return 0;
}

第12题  平方矩阵Ⅲ

这道题,题目已经告诉了我们规律:M[i][j] = 2^{i+j},相当于是2的n次方的变形版。本道题不难,代码如下:

//平方矩阵Ⅲ  
//输入整数n,输出一个n阶的二维数组
//这个n阶二维数组满足m[i][j] = 2^(i+j)
//输入包含多行,每行包含一个整数n
//当输入行为 n=0 时,表示输入结束,且该行无需作任何处理
//对于每个输入整数n,输出一个满足要求的n阶二维数组
//每个数组占n行,每行包含n个用空格隔开的整数
//每个数组输出完毕后,输出一个空行int main() {int n;int m[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {m[i][j] = 1;//数组中的元素必须先初始化为1for (int h = 0; h < i + j; h++) m[i][j] *= 2;cout << m[i][j] << " ";}cout << endl;}}return 0;
}

 或者,咱们不创建二维数组,直接打印,节省空间:

int main() {int n;while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {int v = 1;for (int h = 0; h < i + j; h++) v *= 2;cout << v << " ";}cout << endl;}}return 0;
}

亦或者,咱们可以直接调用库里面的pow函数。需要引用头文件#include<math.h>

int main() {int n;int m[60][60];while (cin >> n, n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {m[i][j] = pow(2, i + j);  //调用库函数pow}}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << m[i][j] << " ";}cout << endl;}}return 0;
}

第13题  蛇形矩阵

emmm,光看题目,不好理解,咱们一起画画图~

因此,我们可以分别定义2个数组,存放横坐标的变化和纵坐标的变化,记为dx和dy。定义变量d,指向dx和dy数组的初始位置(下标为0)。如果出现"撞墙"这种情况,我们应该让d指向dx和dy数组的下一个位置,这样才能变换方向。

代码如下:

//蛇形矩阵
//输入2个整数n和m,输出一个n行m列的矩阵
//将数字1到n*m按照回字蛇形填充至矩阵中
//输入共一行,包含2个整数n和m
//输出满足要求的矩阵
//矩阵占n行,每行包含m个空格隔开的整数int h[100][100] = {0};//初始时,h的所有元素都被初始化为0int main() {int n, m;cin >> n >> m;int dx[] = { 0,1,0,-1 };   //横坐标的变化	int dy[] = { 1,0,-1,0 };   //纵坐标的变化int x,y;int k;int d;for (x = 0, y = 0,d = 0, k = 1; k <= n * m;  k++) {h[x][y] = k;int a = x + dx[d];     //把新的横坐标存放到a里面int b = y + dy[d];     //把新的纵坐标存放到b里面//越界和重复//如果h[a][b]的值不等于0,说明该位置已经被填充过数字,即发生了重复if (a < 0 || a >= n || b < 0 || b>=m || h[a][b]) {d = (d + 1) % 4;   //更新d指向的位置a = x + dx[d];b = y + dy[d];}x = a;    //将a的值赋给xy = b;    //将b的值赋给y}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cout << h[i][j] << " ";}cout << endl;}return 0;
}

通过代码,我们知道:

h是一个二维数组,用于存储蛇形矩阵的值。初始时,h的所有元素都被初始化为0。

当某个位置(x,y)被填充后,h[x][y]的值会被设置为当前的数字k。因此,如果h[a][b]的值不为0,说明该位置已经被填充过数字,即发生了重复。


片尾

今天我们学习了C++蓝桥杯基础篇(六),讲解了数组的相关习题。下一篇,我们将介绍字符串,希望对大家有帮助!!!

点赞收藏加关注!!!

谢谢大家!!!

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

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

相关文章

git -学习笔记

目录 基本操作语法 设置用户和邮箱 版本回退 工作区和暂存区 撤销修改 删除与恢复 一工作区删除了&#xff0c;但是暂存区没删除 二工作区误删了&#xff0c;暂存区还有 github-Git 连接 报错解决-push远程仓库被拒绝 远程库 分支 分支冲突 储藏分支 回到当前分…

Windows本地Docker+Open-WebUI部署DeepSeek

最近想在自己的电脑本地部署一下DeepSeek试试&#xff0c;由于不希望污染电脑的Windows环境&#xff0c;所以在wsl中安装了ollama&#xff0c;使用ollama拉取DeepSeek模型。然后在Windows中安装了Docker Desktop&#xff0c;在Docker中部署了Open-WebUI&#xff0c;最后再在Ope…

力扣785. 判断二分图

力扣785. 判断二分图 题目 题目解析及思路 题目要求将所有节点分成两部分&#xff0c;每条边的两个端点都必须在不同集合中 二分图&#xff1a;BFS/DFS/并查集 因为图不一定联通&#xff0c;所以枚举所有点都做bfs(如果没联通的话) 代码 class Solution { public:bool is…

springboot之集成Elasticsearch

目录 二、Elasticsearch 是什么&#xff1f;三、Elasticsearch 安装四、Springboot 集成 Elasticsearch 的方式五、创建项目集成 Elasticsearch 2.创建 Spring Initializr 项目 es &#xff08;3&#xff09;.新建实体类 User&#xff08;4&#xff09;.新建 dao 接口类 UserR…

[Lc滑动窗口_1] 长度最小的数组 | 无重复字符的最长子串 | 最大连续1的个数 III | 将 x 减到 0 的最小操作数

目录 1. 长度最小的字数组 题解 代码 ⭕2.无重复字符的最长子串 题解 代码 3.最大连续1的个数 III 题解 代码 4.将 x 减到 0 的最小操作数 题解 代码 1. 长度最小的字数组 题目链接&#xff1a;209.长度最小的字数组 题目分析: 给定一个含有 n 个 正整数 的数组…

数据集笔记:新加坡 地铁(MRT)和轻轨(LRT)票价

数据连接 data.gov.sg 2024 年 12 月 28 日起生效的新加坡地铁票价 该数据集包含 MRT 和 LRT 票价的信息&#xff0c;包括&#xff1a; 票价类型&#xff08;Fare Type&#xff09;&#xff1a;成人票、学生票、老年人票、残障人士票等。适用时间&#xff08;Applicable Tim…

【前端基础】Day 3 CSS-2

目录 1. Emmet语法 1.1 快速生成HTML结构语法 1.2 快速生成CSS样式语法 2. CSS的复合选择器 2.1 后代选择器 2.2 子选择器 2.3 并集选择器 2.4 伪类选择器 2.4.1 链接伪类选择器 2.4.2 focus伪类选择器 2.5 复合选择器总结 3. CSS的元素显示模式 3.1 什么是元素显示…

RabbitMQ操作实战

1.RabbitMQ安装 RabbitMQ Windows 安装、配置、使用 - 小白教程-腾讯云开发者社区-腾讯云下载erlang&#xff1a;http://www.erlang.org/downloads/https://cloud.tencent.com/developer/article/2192340 Windows 10安装RabbitMQ及延时消息插件rabbitmq_delayed_message_exch…

【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)

简介: 这个小车的芯片是STM32F103C8T6&#xff0c;其他的芯片也可以照猫画虎,基本配置差不多,要注意的就是,管脚复用,管脚的特殊功能,(这点不用担心,hal库每个管脚的功能都会给你罗列,很方便的.)由于我做的比较简单,只是用到了几个简单外设.主要是由带霍尔编码器电机的车模,电机…

SQL命令详解之操作数据库

操作数据库 SQL是用于管理和操作关系型数据库的标准语言。数据库操作是SQL的核心功能之一&#xff0c;主要用于创建、修改和删除数据库对象&#xff0c;如数据库、表、视图和索引等。以下是SQL中常见的数据库操作命令及其功能简介&#xff1a; 1. 查询数据库 查询所有的数据库…

Go红队开发—编解码工具

文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容&#xff0c;可忽略直接看下面的编解码&#xff1a; 一开始用就按照下面的步骤即可 1.创建一个文件夹&#xff0c;你自己定义名字(建议只用…

Starrocks入门(二)

1、背景&#xff1a;考虑到Starrocks入门这篇文章&#xff0c;安装的是3.0.1版本的SR&#xff0c;参考&#xff1a;Starrocks入门-CSDN博客 但是官网的文档&#xff0c;没有对应3.0.x版本的资料&#xff0c;却有3.2或者3.3或者3.4或者3.1或者2.5版本的资料&#xff0c;不要用较…

SwiftUI之状态管理全解析

文章目录 引言一、`@State`1.1 基本概念1.2 初始化与默认值1.3 注意事项二、`@Binding`2.1 基本概念2.2 初始化与使用2.3 注意事项三、`@ObservedObject`3.1 基本概念3.2 初始化与使用3.3 注意事项四、`@EnvironmentObject`4.1 基本概念4.2 初始化与使用4.3 注意事项五、`@Stat…

Redis 高可用性:如何让你的缓存一直在线,稳定运行?

&#x1f3af; 引言&#xff1a;Redis的高可用性为啥这么重要&#xff1f; 在现代高可用系统中&#xff0c;Redis 是一款不可或缺的分布式缓存与数据库系统。无论是提升访问速度&#xff0c;还是实现数据的高效持久化&#xff0c;Redis 都能轻松搞定。可是&#xff0c;当你把 …

Redis---缓存穿透,雪崩,击穿

文章目录 缓存穿透什么是缓存穿透&#xff1f;缓存穿透情况的处理流程是怎样的&#xff1f;缓存穿透的解决办法缓存无效 key布隆过滤器 缓存雪崩什么是缓存雪崩&#xff1f;缓存雪崩的解决办法 缓存击穿什么是缓存击穿&#xff1f;缓存击穿的解决办法 区别对比 在如今的开发中&…

【定昌Linux系统】部署了java程序,设置开启启动

将代码上传到相应的目录&#xff0c;并且配置了一个.sh的启动脚本文件 文件内容&#xff1a; #!/bin/bash# 指定JAR文件的路径&#xff08;如果JAR文件在当前目录&#xff0c;可以直接使用文件名&#xff09; JAR_FILE"/usr/local/java/xs_luruan_client/lib/xs_luruan_…

Minio搭建并在SpringBoot中使用完成用户头像的上传

Minio使用搭建并上传用户头像到服务器操作,学习笔记 Minio介绍 minio官网 MinIO是一个开源的分布式对象存储服务器&#xff0c;支持S3协议并且可以在多节点上实现数据的高可用和容错。它采用Go语言开发&#xff0c;拥有轻量级、高性能、易部署等特点&#xff0c;并且可以自由…

vue3中ref和reactive响应式数据、ref模板引用(组合式和选项式区别)、组件ref的使用

目录 Ⅰ.ref 1.基本用法&#xff1a;ref响应式数据 2.ref模板引用 3.ref在v-for中的模板引用 ​4.ref在组件上使用 ​5.TS中ref数据标注类型 Ⅱ.reactive 1.基本用法&#xff1a;reactive响应式数据 2.TS中reactive标注类型 Ⅲ.ref和reactive的使用场景和区别 Ⅳ.小结…

javascript实现雪花飘落效果

本文实现雪花飘落效果的 JavaScript 网页设计案例&#xff0c;代码实现如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, init…