五、数组——Java基础篇

六、数组

1、数组元素的遍历

1.1数组的遍历:将数组内的元素展现出来

1、普通for遍历:根据下表获取数组内的元素
2、增强for遍历:
for(数据元素类型 变量名:数组名){
变量名:数组内的每一个值
}

区别:
(1)、需要下标:就是用普通for,不需要下标使用增强for
(2)、增强遍历的底层原理就是普通for

public class Travesal1 {public static void main(String[] args) {String[] sArr={"安其拉","妲己","吕布"};//增强for遍历for (String e : sArr) {System.out.println("e = " + e);}//普通for遍历for(int index=0;index<sArr.length;index++){String ele=sArr[index];System.out.println("ele = " + ele);}}
}class Travesal02{public static void main(String[] args) {int[] arr={30,20,40,50,90,80};//增强for遍历for (int i : arr) {System.out.println("增强for= " + i+"");}//普通for遍历for (int e = 0; e < arr.length; e++) {System.out.println("普通for =" + arr[e]);}}
}
1.2 定义一个整形数组

int[] arr={66,77,88,99,11,22,33};
获取总和?

   public class TrversalExer2 {public static void main(String[] args) {int[] arr={66,77,88,99,11,22,33};//定义变量记录总和int sum=0;//增强遍历for(int e:arr){sum+=e;}//普通遍历
//        for (int i = 0; i < arr.length; i++) {
//            sum+=arr[i];
//        }System.out.println("总和为:" + sum);}
}
1.3 定义一个整型数组,获取最大值和标出下标?

int[] arr={66,77,88,99,11,22,33};

public class TrversalExer_1{public static void main(String[] args) {//1、定义数组int[] arr={66,77,88,99,11,22,33};//todo定义变量 记录最大值,下标int maxNum=0;int index=0;//2、开始遍历for (int i = 0; i < arr.length; i++) {//数组中的每一个元素与假设的”int maxNum=1;“进行比较,如果数组元素>假设值,则元素是最大值if(arr[i]>maxNum){maxNum=arr[i];//记录最大值下标index=i;}}//3、展示数组System.out.println("最大值是:" + maxNum+",下标是"+index);}
}
class TrversalExer_2{public static void main(String[] args) {//1.定义变量int[] arr={66,77,88,99,11,22,33};//2.定义变量记录最小值下标int minNum=arr[0];int index=0;for (int i = 0; i < arr.length; i++) {if(arr[i]<minNum){minNum=arr[i];index=1;}}System.out.println("最小值三十:" + minNum+",下标是"+index);}
}

2、Java虚拟机的内存划分

​ 为了提高运算效率,就对空间进行了不同的区域划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
在这里插入图片描述

​ 程序运行时才会在虚拟机上开辟内存,内存区域划分的目的,提高运算效率

1 .栈:存储着方法内的局部变量信息。
2 .堆:对象。new的对象,包括数组,都存在堆中。
3 .本地方法栈:Java并不是万能的,有些功能时无法实现的额,需要救助与其他语言来实现,通过调用本地方法调用其他语言。
4 .方法区(元空间):静态信息,常量信息,类中的描述信息。
5 .程序计数器:存储计算机下一条指令的地址。

2.1 怎么画栈堆图
public class JVMMemory3 {public static void main(String[] args) {int m=10;int[] arr=new int[3];arr[0]=99;arr[2]=66;System.out.println("arr[0] = " + arr[0]);System.out.println("arr[1] = " + arr[1]);System.out.println("arr[3] = " + arr[3]);}
}

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

2.2 输出英文星期几

​ 用一个数组,保存星期一到星期天的7个英语单词,从键盘输入1-7,显示对应的单词
​ {“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”,“Sunday”}

public class ArrayExer4 {public static void main(String[] args) {/***///1、准备数组String[] arr={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};//2、创建键盘输入对象Scanner in=new Scanner(System.in);//3、接受数组System.out.println("请输入数字1-7:");int month=in.nextInt();//4、展示单词String mesage = arr[month - 1];System.out.println("mesage = " + mesage);//5、关闭资源in.close();}
}
2.3 从键盘读入学生成绩,找出最高分,并输出学生成绩等级
- 成绩>=最高分-10  等级为’A’- 成绩>=最高分-20  等级为’B’- 成绩>=最高分-30  等级为’C’- 其余            等级为’D’提示:先读入学生人数,根据人数创建int数组,存放学生成绩。请您输入第1个学生的成绩90请您输入第2个学生的成绩80请您输入第3个学生的成绩70请您输入第4个学生的成绩60请您输入第5个学生的成绩80
class ArrayExery_2{public static void main(String[] args) {//1、创建键盘输入对象Scanner in=new Scanner(System.in);//2、获取学生的个数System.out.println("请输入学生的个数:");int count=in.nextInt();//3、创建数组,存储学生的成绩int[] arr=new int[count];//4、遍历数组、存储成绩for (int i = 0; i < arr.length; i++) {System.out.println("请您输入第"+(i+1)+"个学生的成绩");int soure=in.nextInt();arr[i]=soure;}//5、过去最高成绩int maxsoure=arr[0];for (int i : arr) {if(i>maxsoure){maxsoure=i;}}System.out.println("maxsoure = " + maxsoure);//6、判断学生的等级for (int i = 0; i < arr.length; i++) {int score = arr[i];if(score>=maxsoure-10){System.out.println("第"+(i+1)+"个学生成绩等级是:A");}else if(score>=maxsoure-20){System.out.println("第"+(i+1)+"个学生成绩等级是:A");}else if(score>=maxsoure-30){System.out.println("第"+(i+1)+"个学生成绩等级是:A");}else{System.out.println("第"+(i+1)+"个学生成绩等级是:A");}}//7、关闭资源in.close();}
}

3、冒泡排序

在这里插入图片描述

3.1 冒泡排序的准备
public class BubbleSort5 {public static void main(String[] args) {int m=20;int n=10;System.out.println("交换前:m = " + m+",n="+n);int temp=m;m=n;n=temp;System.out.println("交换后:m = " + m+",n="+n);int[] arr={77,66,55,44,33,22,11};System.out.println("arr = " + arr);//地址值:[I@5b480cf9//Arrays.toString(arr)+soutv,展示arr中的值System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));}}
3.2 冒泡排序的基础写法
class BubbleSort_1{public static void main(String[] args) {int[] arr={77,66,55,44,33,22,11};System.out.println("排序前 = " + Arrays.toString(arr));//todo-1:数组元素时7个,最多6次有序for (int i = 0; i < arr.length-1; i++) {//todo进行每一次排序,-1:为了防止下标越界for(int j=0;j<arr.length-1;j++){//如果前一个>后一个,,两个数进行交换if(arr[j]>arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}System.out.println("排序中 = " + Arrays.toString(arr));}System.out.println("排序后 = " + Arrays.toString(arr));
}
}
3.3 冒泡排序的优化
class BubbleSort_2{public static void main(String[] args) {int[] arr={77,66,55,44,33,22,11};System.out.println("排序前 = " + Arrays.toString(arr));//todo-1:数组元素时7个,最多6次有序for (int i = 0; i < arr.length-1; i++) {//假设此次排序已经有序,若是假设失败boolean flag=true;//todo进行每一次排序,-1:为了防止下标越界// -i:为了专注于无序部分即可,不需要对有序部分排序for(int j=0;j<arr.length-1-i;j++){//如果前一个>后一个,,两个数进行交换if(arr[j]>arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;//如果有前一个>后一个则假设失败,数组无序flag=false;}}if(flag){break;}System.out.println("排序中 = " + Arrays.toString(arr));}System.out.println("排序后 = " + Arrays.toString(arr));
}
3.4 定义一个数组存储学生的成绩求总分平均分
3.5 定义一个数字 对数组元素进行反转

​ 10 20 30 40 50 60 70

​ 70 60 50 40 30 20 10

3.6 定义一个数组 键盘输入一个数字 判断此数字是否在数组内

​ 请您输入一个数
​ 55
​ 有此元素 55 下标是 3

​ 请您输入一个数
​ 99
​ 查无此元素 99

import java.util.Scanner;
public class ArrayText {public static void main(String[] args) {//1、创建键盘输入对象Scanner in=new Scanner(System.in);//2、获取成绩System.out.println("请问您要存储几个学生的成绩");int count=in.nextInt();//3、创建数组int[] arr=new int[count];//4、遍历数组for (int i = 0; i < arr.length; i++) {System.out.println("请您输入第"+(i+1)+"个学生的成绩");arr[i]=in.nextInt();}//4.1获取最大值、最小值、总成绩int maxNum=arr[0] , minNum=arr[0],sum=0;for (int e : arr) {if(e>maxNum){maxNum=e;}if(e<minNum){minNum=e;}sum+=e;}//5、展示总成绩,平均分,System.out.println("总成绩 = " + sum+",最高成绩="+maxNum+",最低成绩="+minNum+",平均分"+sum/arr.length);//6、关闭资源in.close();}
}

4、反转

4.1 反转1(开辟了新内存进行反转)
public class Reverse7 {public static void main(String[] args) {int[] arr={11,22,33,44,55,66,77};//反转前System.out.println("反转前 = " + Arrays.toString(arr));//反转//1、创建一个新数据 长度为7int[] newArr=new int[arr.length];//2、将旧数据内容 反转后存储到新数组内int index=0;for(int i=arr.length-1;i>=0;i--){newArr[index]=arr[i];//更改index下标index++;}//3、将新数组地址赋值给旧数组arr=newArr;//反转后System.out.println("反转后 = " + Arrays.toString(arr));}
}
4.2 反转2(就在原来的内存上进行反转)

在这里插入图片描述

class Reverse7_1{public static void main(String[] args) {int[] arr={11,22,33,44,55,66,77};//反转前System.out.println("反转前 = " + Arrays.toString(arr));//反转for(int i=0;i<arr.length/2;i++){int temp=arr[i];arr[i]=arr[arr.length-1-i];arr[arr.length-1-i]=temp;}//反转后System.out.println("反转后 = " + Arrays.toString(arr));}
}
4.3 反转3

在这里插入图片描述

LIndex=0左边从0开始,RIndex=arr.length-1右边往左开始,,左边<右边,,左边一直加,右边一直减

class Reverse7_3{public static void main(String[] args) {int[] arr={11,22,33,44,55,66,77};//反转前System.out.println("反转前 = " + Arrays.toString(arr));//反转//LIndex=0左边从0开始,RIndex=arr.length-1右边往左开始,,左边<右边,,左边一直加,右边一直减for(int LIndex=0,RIndex=arr.length-1;LIndex<RIndex;LIndex++,RIndex--){int temp=arr[LIndex];arr[LIndex]=arr[RIndex];arr[RIndex]=temp;}//反转后System.out.println("反转后 = " + Arrays.toString(arr));}
}
4.5 数组元素的扩容
4.6找出所有的偶数并求和
public class EvenTest8 {public static void main(String[] args) {int[] arr={10,11,12,13,14,15,16,17};//找出所有的偶数并求和int sum=0;for (int e : arr) {if(e%2==0){sum+=e;}}System.out.println("sum = " + sum);}
}
4.7 数组扩容(数组已经满了,再添加元素)
class EvenTest8_1{public static void main(String[] args) {String[] arr={"张三","王五","李四"};//1.创建一个新数组String[] newArr = new String[arr.length << 1];//2.将旧数组赋值为新数组for (int i = 0; i < arr.length; i++) {newArr[i]=arr[i];}//3.将新数组地址赋值给旧数组arr = newArr;arr[3]="安其拉";System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));}
}

在这里插入图片描述

5、总结

5.1数组元素的遍历

(1)普通for(值+fori)

(2)增强for(值+for):底层是普通for

5.2 数组元素的内存图

(1)单个数组

(2)多个数组

(3)两个数组指向同一个地址

5.3数组的小算法

(1)顺序查找

(2)冒泡排序

(3)特殊值

(4)反转

(5)数组的扩容

6、二维数据的初始

7、二维数组的静态初始化

静态初始化:编译时确定数组的长度以及内容
形式1:
数据类型[][] 数据名={{},{}};
形式2:
数据类型[][] 数组名=new 数据类型[][]{{“李白”,“李三”},{“安其拉”,“哈哈”,“喜喜”}};

public class DoublearrayTest_1 {public static void main(String[] args) {System.out.println("---------静态数组------------");int[][] arr = {{20, 40, 60}, {11, 22, 33, 44}, {55, 66, 77, 88, 99},{100,200}};System.out.println("arr.length = " + arr.length);//4System.out.println("arr[0] = " + arr[0]);//第一个一维数组中的第三个元素System.out.println("arr[0][2] = " + arr[0][2]); //60System.out.println("arr[2][4] = " + arr[2][4]); //99System.out.println("arr[3].length = " + arr[3].length);//2String[][] arr1;arr1=new String[][]{{"李白","李三"},{"安其拉","哈哈","喜喜"}};System.out.println("arr1.length = " + arr1.length);//2System.out.println("arr1[1][2] = " + arr1[1][2]); //喜喜}
}

8、二维数组的动态初始化

动态初始化:编译时确定数组的长度和默认值
形式1:规则矩形
数据类型[][] 数组名=new 数据类型[ 数组1][ 数值2];
数值1:一位数组的的个数
数组2:一维数组内元素的个数

class DoublearrayTest1_2 {public static void main(String[] args) {//数据类型[][] 数组名=new 数据类型[数组1][数值2];int[][] arr = new int[5][6];System.out.println("arr.length = " + arr.length);System.out.println("arr[0].length = " + arr[0].length);System.out.println("arr[4].length = " + arr[4].length);System.out.println("arr[0][0] = " + arr[0][0]);}
}

​ 形式2:非规则矩形
​ 数据类型[][] 数组名=new 数据类型[数组1][][ ];
​ 数值1:一位数组的的个数

class DoublearrayTest1_2 {public static void main(String[] args) {//数据类型[][] 数组名=new 数据类型[数组1][];int[][] iArr = new int[3][];System.out.println("iArr[0] = " + iArr[0]);iArr[0] = new int[6];iArr[0][0] = 66;iArr[1] = new int[]{33,55,77};}
}

8、二维数组的遍历

public class Taversal_2 {public static void main(String[] args) {String[][] arr = {{"侵权","王五"},{"嗯嗯","让人","头疼"},{"右移","哈哈","更改","得到"}};
//只遍历第一个一维数组,其他的依次类推//        for(int i=0;i<arr[0].length;i++){
//            System.out.println(arr[0][i]+"\t");
//        }for (String[] eleArr : arr) {//对一堆数组再次遍历for (String e : eleArr) {System.out.println(e+"\t");}System.out.println();}}
}
class Taversal2_1{public static void main(String[] args) {int[][] arr={{11,22},{33,44,55}};for (int[] eleArr : arr) {for (int e : eleArr) {System.out.println(e+"\t");}}}
}

9、二维数组的内存图

​ 二位数组的元素是一维数组,一维数组不是基本类型数据,不是基本那就是引用,引用数据类型默认值null。
在这里插入图片描述

10、二维数组求最值

public class BoubleArrayExer_3 {public static void main(String[] args) {//获取最大值/最小值int[][] arr={{111,222,333},{10,20,30},{-1,-2,99}};//定义变量记录最大值和最小值int maxNum=arr[0][0];int minNum=arr[0][0];//遍历数据,获取每一个值for (int[] eleArr : arr) {for (int e : eleArr) {//如果数组元素>假设得最大值 则说明数组元素是最大值if(e>maxNum){maxNum=e;}//如果数组元素<假设得最小值 则说明数组元素是最小值if(e<minNum){minNum=e;}}}System.out.println("最大值 = " + maxNum+",最小值 = " + minNum);}
}

键盘输入一个正整数 ,动态 创建长度为输入的数得二维数组,遍历此二维数组再控制台。
1
22
333
4444
55555

class BoubleArrayExer3_1{public static void main(String[] args) {//1、创建键盘输入对象Scanner in=new Scanner(System.in);//2、获取数组得长度System.out.println("请您输入数组的长度:");int length = in.nextInt();//3、创建二维数组int[][] arr=new int[length][];//4、遍历数组给元素赋值//4.1遍历二维数据获取每一个一维数组下标for (int i = 0; i < arr.length; i++) {//4.2给一位数组开辟空间(初始化)arr[i] = new int[i + 1];//4.3遍历一维数组,给每一个元素赋值for (int j = 0; j < arr[i].length; j++) {arr[i][j]=i+1;}}
//        System.out.println("arr[0] = " + arr[0]);
//        arr[0]=new int[0+1];
//        arr[0][0]=0+1;
//        arr[1]=new int[1+1];
//        arr[1][0]=1+1;
//        arr[1][1]=1+1;
//        arr[2]=new int[2+1];
//        arr[2][0]=2+1;
//        arr[2][1]=2+1;
//        arr[2][2]=2+1;//5、展示数据for (int[] eleArr : arr) {for (int e : eleArr) {System.out.print(e);}System.out.println();}//6、关闭资源in.close();}
}

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

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

相关文章

【vue+leaflet】vue使用leaflet.pm保存绘制后的图层的点位信息、图层回显、平面图切换、地图事件函数、图层事件函数说明(二)

看效果展示: 【vueleaflet】第二节效果展示视频 1.平面图切换,多个平面图切换展示 <div class"select"><span>平面图&#xff1a;</span><el-select v-model"pic" placeholder"全部" clearable filterable change"ini…

机器学习.线性回归

斯塔1和2是权重项&#xff0c;斯塔0是偏置项&#xff0c;在训练过程中为了使得训练结果更加精确而做的微调&#xff0c;不是一个大范围的因素&#xff0c;核心影响因素是权重项 为了完成矩阵的运算&#xff0c;在斯塔0后面乘x0&#xff0c;使得满足矩阵的转换&#xff0c;所以在…

编码后的字符串lua

-- 长字符串 local long_string "你好你好你好你好你好你好你好你好" local encoded_string "" for i 1, #long_string do local char_code string.byte (long_string, i) encoded_string encoded_string .. char_code .. "," end encoded_…

redis数据结构源码分析——压缩列表ziplist(I)

前面讲了跳表的源码分析&#xff0c;本篇我们来聊一聊另外一个重点结构——压缩列表 文章目录 存储结构字节数组结构节点结构 压缩编码zipEntryzlEntry ZIP_DECODE_PREVLENZIP_DECODE_LENGTH API解析ziplistNew(创建压缩列表)ziplistInsert(插入)ziplistDelete(删除)ziplistFi…

复旦大学EMBA联合澎湃科技:共议科技迭代 创新破局

1月18日&#xff0c;由复旦大学管理学院、澎湃新闻、厦门市科学技术局联合主办&#xff0c;复旦大学EMBA项目、澎湃科技承办的“君子知道”复旦大学EMBA前沿论坛在厦门成功举办。此次论坛主题为“科技迭代 创新破局”&#xff0c;上海、厦门两地的政策研究专家、科学家、科创企…

2024年漳州本地有正规等保测评机构吗?在哪里?

我们大家都知道&#xff0c;企业办理等保一定要找有资质的等保测评机构。因此不少漳州企业在问&#xff0c;2024年漳州本地有正规等保测评机构吗&#xff1f;在哪里&#xff1f;这里我们小编通过查找来为大家解答一下&#xff0c;仅供参考&#xff01; 目前福建漳州本地没有正规…

HTTP---------状态码

当服务端返回 HTTP 响应时&#xff0c;会带有一个状态码&#xff0c;用于表示特定的请求结果。比如 HTTP/1.1 200 OK&#xff0c;里面的 HTTP/1.1 表示协议版本&#xff0c;200 则是状态码&#xff0c;OK 则是对状态码的描述。 由协议版本、状态码、描述信息组成的行被称为起始…

北京硒鼓耗材回收价位,硒鼓回收价格,回收

联系我的时候请说是在百猫网看到的&#xff01; 硒鼓回收价格&#xff1a;最专业的硒鼓回收 顺达耗材回收 俗话说&#xff0c;顾客是最好的&#xff0c;良好的品牌效应是推动发展的关键之一。 北京顺达耗材回收有限公司为中小企业创造良好的二手消费市场&#xff0c;不断贯彻…

皓学IT:MySQL02

一、了解表 1.1.概述 表是处理数据和建立关系型数据库及应用程序的基本单元&#xff0c;是构成数据库的基本元素之一&#xff0c;是数据库中数据组织并储存的单元&#xff0c;所有的数据都能以表格的形式组织&#xff0c;目的是可读性强。 1.2.表结构简述 一个表中包括行和列…

Uncertainty-Aware Mean Teacher(UA-MT)

Uncertainty-Aware Mean Teacher 0 FQA:1 UA-MT1.1 Introduction:1.2 semi-supervised segmentation1.3 Uncertainty-Aware Mean Teacher Framework 参考&#xff1a; 0 FQA: Q1: 不确定感知是什么意思&#xff1f;不确定信息是啥&#xff1f;Q2&#xff1a;这篇文章的精妙的点…

Java面试——锁

​ 公平锁&#xff1a; 是指多个线程按照申请锁的顺序来获取锁&#xff0c;有点先来后到的意思。在并发环境中&#xff0c;每个线程在获取锁时会先查看此锁维护的队列&#xff0c;如果为空&#xff0c;或者当前线程是等待队列的第一个&#xff0c;就占有锁&#xff0c;否则就会…

idea 2018.3永久简单激活。激活码

1.打开hosts文件将 0.0.0.0 account.jetbrains.com 添加到文件末尾 C:\Windows\System32\drivers\etc\hosts 2.注册码&#xff1a; MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaW…

数据结构知识点总结-线性表(1)-线性表的定义、基本操作、顺序表表示

线性表 定义 线性表是具有相同数据类型的N&#xff08;N>0&#xff09;个元素的有限序列&#xff0c;其中N为表长&#xff0c;当N0时线性表是一张空表。 线性表的逻辑特征&#xff1a;每个非空的线性表都有一个表头元素和表尾元素&#xff0c;中间的每个元素有且仅有一个直…

有趣的CSS - 弹跳的圆

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是用css写一个好玩的不停弹跳变形的圆。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

亿道丨三防平板电脑厂家丨三防平板PDA丨三防工业平板:数字时代

在当今数字化时代&#xff0c;我们身边的世界变得越来越依赖于智能设备和无线连接。其中&#xff0c;三防平板PDA&#xff08;Personal Digital Assistant&#xff09;作为一种功能强大且耐用的数字工具&#xff0c;正在引领我们进入数字世界的全新征程。 三防平板PDA结合了平板…

LeetCode 0235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点)

【LetMeFly】235.二叉搜索树的最近公共祖先&#xff1a;用搜索树性质&#xff08;不遍历全部节点&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公…

2024全国水科技大会暨减污降碳协同增效创新与实践论坛(八)

召集人&#xff1a;王洪臣 中国人民大学环境学院教授 姚 宏 北京交通大学教授 为大会征集“绿色低碳污水厂案例”&#xff0c;欢迎各相关单位积极报名&#xff01; 一、会议背景 生态环境部、国家发展和改革委员会等七部门印发《减 污降碳协同增效实施方案》中明确提出推进水…

【C++】C++对C语言的关系,拓展及命名空间的使用

文章目录 &#x1f4dd;C简述C融合了3种不同的编程方式&#xff1a;C和C语言关系是啥呢&#xff1f;C标准 &#x1f320;C应用&#x1f320;C语言优点第一个C程序 &#x1f320;命名空间&#x1f320;命名空间的使用命名空间的定义 &#x1f320;怎么使用命名空间中的内容呢&am…

测试C#使用ViewFaceCore实现图片中的人脸遮挡

基于ViewFaceCore和DlibDotNet都能实现人脸识别&#xff0c;准备做个遮挡图片中人脸的程序&#xff0c;由于暂时不清楚DlibDotNet返回的人脸尺寸与像素的转换关系&#xff0c;最终决定使用ViewFaceCore实现图片中的人脸遮挡。   新建Winform项目&#xff0c;在Nuget包管理器中…

【深度学习】微调ChatGlm3-6b

1.前言 指令微调ChatGlm3-6b。微调教程在github地址中给出&#xff0c;微调环境是Qwen提供的docker镜像为环境。 镜像获取方式&#xff1a;docker pull qwenllm/qwen:cu117 github地址&#xff1a;https://github.com/liucongg/ChatGLM-Finetuning 2.微调过程 github地址中的教…