39 C 语言枚举类型、枚举常量、枚举变量、枚举的遍历、枚举数组、枚举与 switch

目录

1 什么是枚举

2 定义枚举类型

2.1 语法格式

2.2 枚举元素的特点

2.3 案例演示

3 枚举变量

3.1 什么是枚举变量

3.2 定义枚举变量的多种方式

3.3 案例演示 1:标准版枚举类型

3.4 案例演示 2:简化版枚举类型

3.5 案例演示 3:匿名枚举类型

4 枚举的遍历

4.1 连续枚举常量的遍历

4.2 非连续枚举常量的遍历

4.2.1 手动遍历每个枚举常量

4.2.2 使用数组存储枚举常量

5 枚举在 switch 中使用

6 枚举数组


1 什么是枚举

        枚举(Enumeration)是 C 语言中的一种用户自定义数据类型,用于定义一组相关的常量。它允许为这些常量赋予有意义的名称,从而增强代码的可读性和可维护性。

        如果我们要定义一个变量来表示一周中的某一天,可以使用枚举类型来确保该变量的值仅限于七个预定义的有效值之中。这样能够有效地限制变量的取值范围,确保其准确性与合理性。


2 定义枚举类型

2.1 语法格式

        枚举类型使用 enum 关键字定义,通过为一组相关常量命名来创建一种新的数据类型。枚举名称(通常使用全大写表示)和其中的元素名称均为标识符(需要满足标识符的命名规则)。定义一个枚举就是定义了一种新的数据类型,其基本语法如下:

// 不指定值的枚举
enum 枚举名称 {枚举元素1,枚举元素2,...枚举元素N
};  // 分号不要忘记// 指定部分值的枚举
enum 枚举名称 {枚举元素1 = 值1,枚举元素2,...枚举元素N
};  // 分号不要忘记// 完全指定值的枚举
enum 枚举名称 {枚举元素1 = 值1,枚举元素2 = 值2,...枚举元素N = 值N
};  // 分号不要忘记

        枚举类型可以在 main 函数外面定义,也可以在 main 函数里面定义

  • 将枚举类型定义在 main 函数外面(通常是文件的全局作用域),可以使枚举类型在整个文件中可见,便于在多个函数中使用。 
  • 将枚举类型定义在 main 函数内部,可以使枚举类型的作用域限制在 main 函数内,避免污染全局命名空间。

2.2 枚举元素的特点

        枚举元素,也称为枚举成员枚举常量,具有以下特征:

        唯一性在同一枚举类型中,每个枚举常量的值必须唯一,即不能有两个或多个枚举常量具有相同的值。

        整数类型枚举常量的值必须是整数类型,虽然在大多数编程语言中枚举常量本身不直接表现为整数,但在底层它们通常由整数(通常是 int 类型)表示。

        自定义值:定义枚举时,可以为枚举元素指定自定义的整数值,但需确保这些值的唯一性和整数类型。

        自动递增赋值 

  • 如果没有为枚举常量显式指定值,编译器会自动为它们分配值。这些值通常从 0 开始,依次递增。例如,在一个包含三个枚举常量的枚举类型中,第一个枚举常量会被分配值 0,第二个为 1,第三个为 2。
  • 如果为第一个枚举常量显式赋值,后续的枚举常量没有显式赋值,则后续枚举常量会从该值开始依次递增。例如,如果给第一个枚举常量显式赋值为 1,则第二个枚举常量的值默认为 2,第三个默认为 3,依此类推。
  • 如果中间的某个枚举常量显式赋了某个值,而下一个常量没有显式赋值,那么其默认值将从上一个枚举常量的值开始依次递增。例如,如果给第一个枚举常量显式赋值为 1,则第二个枚举常量的值默认为 2,再给第三个枚举常量显式赋值为 10,则第四个枚举常量的值默认为 11,依此类推。

2.3 案例演示

#include <stdio.h>// 定义枚举类型,表示星期一到星期天,枚举元素的值自动分配,从 0 到 6
enum WEEKDAY
{MONDAY,    // 默认值为 0TUESDAY,   // 默认值为 1WEDNESDAY, // 默认值为 2THURSDAY,  // 默认值为 3FRIDAY,    // 默认值为 4SATURDAY,  // 默认值为 5SUNDAY     // 默认值为 6
};// 定义枚举类型,表示一月到十二月,为第一个枚举元素 JANUARY 指定值 1,其余元素依次递增
enum MONTH
{JANUARY = 1, // 显式赋值为 1FEBRUARY,    // 默认值为 2MARCH,       // 默认值为 3APRIL,       // 默认值为 4MAY,         // 默认值为 5JUNE,        // 默认值为 6JULY,        // 默认值为 7AUGUST,      // 默认值为 8SEPTEMBER,   // 默认值为 9OCTOBER,     // 默认值为 10NOVEMBER,    // 默认值为 11DECEMBER     // 默认值为 12
};// 定义枚举类型,表示北京地区一年四季的平均温度,为每个枚举元素指定特定值,需确保这些值的唯一性和整数类型
enum SEASON
{SPRING = 18, // 显式赋值为 18SUMMER = 30, // 显式赋值为 30AUTUMN = 20, // 显式赋值为 20WINTER = -5  // 显式赋值为 -5
};// 定义枚举类型,测试自动递增赋值
enum EXAMPLE
{NUMA = 10, // 显式赋值为 10NUMB,      // 默认值为 11NUMC = 20, // 显式赋值为 20NUMD       // 默认值为 21
};int main()
{return 0;
}

3 枚举变量

3.1 什么是枚举变量

        定义变量时,如果指定其类型为我们所定义的枚举类型,该变量就称为枚举变量。

        枚举变量的值必须是该枚举类型中的一个枚举常量,不能是其他值。如果是其他值,就失去了枚举的意义,不建议这么做。

3.2 定义枚举变量的多种方式

        第一种:先定义枚举类型,再定义枚举变量。

// 定义枚举类型
enum DAY {MON = 1,TUE,WED,THU,FRI,SAT,SUN
};// 使用枚举类型定义枚举变量
enum DAY day;  // day 是变量名

        第二种:定义枚举类型的同时声明枚举变量。

enum DAY {MON = 1,TUE,WED,THU,FRI,SAT,SUN
} day;  // 直接跟上一个变量名称enum DAY {MON = 1,TUE,WED,THU,FRI,SAT,SUN
} day = TUE; // 可以在这里直接进行赋值enum DAY {MON = 1,TUE,WED,THU,FRI,SAT,SUN
} day1,day2; // 可以一次性声明多个变量

        第三种:定义枚举类型的同时声明枚举变量,且省略枚举名称。

enum            // 省略枚举名称
{ MON = 1,TUE,WED,THU,FRI,SAT,SUN
} day = TUE;    // 可以在这里直接进行赋值enum            // 省略枚举名称
{        MON = 1,TUE,WED,THU,FRI,SAT,SUN
} day1,day2;     // 可以一次性声明多个变量

3.3 案例演示 1:标准版枚举类型

#include <stdio.h>// 定义枚举类型,表示星期一到星期天,枚举元素的值自动分配,从 0 到 6
enum WEEKDAY
{MONDAY,    // 默认值为 0TUESDAY,   // 默认值为 1WEDNESDAY, // 默认值为 2THURSDAY,  // 默认值为 3FRIDAY,    // 默认值为 4SATURDAY,  // 默认值为 5SUNDAY     // 默认值为 6
};// 定义枚举类型,表示一月到十二月,为第一个枚举元素 JANUARY 指定值 1,其余元素依次递增
enum MONTH
{JANUARY = 1, // 显式赋值为 1FEBRUARY,    // 默认值为 2MARCH,       // 默认值为 3APRIL,       // 默认值为 4MAY,         // 默认值为 5JUNE,        // 默认值为 6JULY,        // 默认值为 7AUGUST,      // 默认值为 8SEPTEMBER,   // 默认值为 9OCTOBER,     // 默认值为 10NOVEMBER,    // 默认值为 11DECEMBER     // 默认值为 12
};// 定义枚举类型,表示北京地区一年四季的平均温度,为每个枚举元素指定特定值,需确保这些值的唯一性和整数类型
enum SEASON
{SPRING = 18, // 显式赋值为 18SUMMER = 30, // 显式赋值为 30AUTUMN = 20, // 显式赋值为 20WINTER = -5  // 显式赋值为 -5
};// 定义枚举类型,测试自动递增赋值
enum EXAMPLE
{NUMA = 10, // 显式赋值为 10NUMB,      // 默认值为 11NUMC = 20, // 显式赋值为 20NUMD       // 默认值为 21
};int main()
{// 定义枚举变量并赋值// 枚举变量的值必须是该枚举类型中的一个枚举常量,不能是其他值enum WEEKDAY today = WEDNESDAY;enum MONTH currentMonth = OCTOBER;enum SEASON currentSeason = AUTUMN;enum EXAMPLE num = NUMD;// 输出枚举变量的值printf("今天是 %d \n", today);             // 输出 2printf("当前月份是 %d \n", currentMonth);  // 输出 10printf("当前季节是 %d \n", currentSeason); // 输出 20printf("当前数字是 %d \n", num);           // 输出 21// 修改枚举变量 today 的值为 FRIDAY// 枚举变量的值必须是该枚举类型中的一个枚举常量,不能是其他值。today = FRIDAY;printf("今天是 %d \n", today); // 输出 4// 修改枚举变量 num 的值为 100// 100 并不是枚举类型中的一个常量,这样做虽然不会报错,但失去了枚举的意义,不建议这么做num = 100;printf("当前数字是 %d \n", num); // 输出 100return 0;
}

3.4 案例演示 2:简化版枚举类型

        尽管这种方式简洁,但枚举类型名称仍然存在,可以在后续代码中使用该类型定义更多的变量

        对于复杂的枚举类型或需要在多个地方使用同一枚举类型的场景,建议使用标准的定义方法(即先定义枚举类型,再定义变量),以提高代码的可维护性和可扩展性。

#include <stdio.h>int main()
{// 第一种方式:定义枚举类型并直接声明变量enum DAY{MON = 1,TUE,WED,THU,FRI,SAT,SUN} day1;// 初始化并使用枚举变量 day1day1 = WED;printf("今天是 %d \n", day1); // 输出 3// 修改 day1 的值day1 = FRI;printf("今天是 %d \n", day1); // 输出 5// 第二种方式:定义枚举类型并直接声明并初始化变量enum DAY2{MON2 = 1,TUE2,WED2,THU2,FRI2,SAT2,SUN2} day2 = TUE2;// 使用枚举变量 day2printf("今天是 %d \n", day2); // 输出 2// 第三种方式:定义枚举类型并一次性声明多个变量enum DAY3{MON3 = 1,TUE3,WED3,THU3,FRI3,SAT3,SUN3} day3,day4;// 初始化并使用枚举变量 day3 和 day4day3 = SAT3;day4 = SUN3;printf("今天是 %d \n", day3); // 输出 6printf("今天是 %d \n", day4); // 输出 7// 在后续代码中声明新的变量enum DAY anotherDay = SAT;printf("今天是 %d \n", anotherDay); // 输出 6return 0;
}

3.5 案例演示 3:匿名枚举类型

        由于匿名枚举类型没有名称,因此不能在其他地方重新使用相同的枚举类型定义新的变量。每次需要使用时都需要重新定义整个枚举类型。

        虽然匿名枚举类型可以减少一些冗余代码,但在大型项目中可能会影响代码的可读性和可维护性。建议在简单的情况下使用匿名枚举类型,而在复杂项目中使用带名称的枚举类型。

#include <stdio.h>int main()
{// 定义匿名枚举类型并同时声明多个枚举变量enum{MON = 1,TUE,WED,THU,FRI,SAT,SUN} day1,day2, day3 = WED; // 同时声明多个枚举变量,并初始化 day3// 初始化并使用枚举变量 day1 和 day2day1 = MON;day2 = FRI;// 输出 day1, day2 和 day3 的值printf("day1 是 %d \n", day1); // 输出 1printf("day2 是 %d \n", day2); // 输出 5printf("day3 是 %d \n", day3); // 输出 3// 修改 day1 和 day2 的值day1 = TUE;day2 = SAT;// 再次输出 day1 和 day2 的值printf("day1 是 %d \n", day1); // 输出 2printf("day2 是 %d \n", day2); // 输出 6// 在后续代码中声明新的变量enum{MON2 = 1,TUE2,WED2,THU2,FRI2,SAT2,SUN2} anotherDay = SUN2;printf("anotherDay 是 %d \n", anotherDay); // 输出 7return 0;
}

4 枚举的遍历

4.1 连续枚举常量的遍历

        枚举常量的值如果是连续的,可以通过循环来遍历所有枚举常量。如果枚举常量的值不是连续的,则无法通过简单的循环来遍历,需要考虑其他方法。

#include <stdio.h>int main()
{// 定义枚举类型 WEEKDAY,表示星期一到星期天,值从 1 开始enum WEEKDAY{MONDAY = 1,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY};// 使用循环遍历出所有的枚举常量for (enum WEEKDAY day = MONDAY; day <= SUNDAY; day++){printf("星期 %d \n", day);}return 0;
}

        输出结果如下所示:

4.2 非连续枚举常量的遍历

        对于非连续的枚举常量,由于它们的值不是连续的,不能通过简单的循环来遍历。但是,可以通过以下几种方法来实现遍历:

4.2.1 手动遍历每个枚举常量

        直接列出每个枚举常量并处理它们。

#include <stdio.h>int main()
{// 定义枚举类型 SEASON,表示北京地区一年四季的平均温度enum SEASON{SPRING = 18,SUMMER = 30,AUTUMN = 20,WINTER = -5};// 尝试遍历非连续的枚举常量// 注意:这种遍历方式是错误的,因为枚举常量的值不是连续的// 下面这个循环一次都不会执行。因为循环条件一直都不满足for (enum SEASON season = SPRING; season <= WINTER; season++){printf("季节 %d \n", season); // 不会执行}// 手动遍历每个枚举常量printf("季节 %d \n", SPRING);printf("季节 %d \n", SUMMER);printf("季节 %d \n", AUTUMN);printf("季节 %d \n", WINTER);return 0;
}

        输出结果如下所示:

4.2.2 使用数组存储枚举常量

        将枚举常量的值存储在一个数组中,然后遍历数组。

#include <stdio.h>int main()
{// 定义枚举类型 SEASON,表示北京地区一年四季的平均温度enum SEASON{SPRING = 18,SUMMER = 30,AUTUMN = 20,WINTER = -5};// 使用数组存储枚举常量的值enum SEASON seasons[] = {SPRING, SUMMER, AUTUMN, WINTER};int num_seasons = sizeof(seasons) / sizeof(seasons[0]);// 遍历数组for (int i = 0; i < num_seasons; i++){printf("季节 %d \n", seasons[i]);}return 0;
}

        输出结果如下所示:


5 枚举在 switch 中使用

        枚举可以与 switch 结合使用,通过枚举常量来控制不同的分支逻辑。以下是一个示例,展示了如何使用枚举和 switch 语句来处理用户输入的季节选择。

#include <stdio.h>int main()
{// 定义枚举类型 SEASONS,表示四个季节enum SEASONS{SPRING = 1, // 春天SUMMER,     // 夏天AUTUMN,     // 秋天WINTER      // 冬天};// 定义枚举变量 seasonenum SEASONS season;// 获取用户输入printf("请输入你喜欢的季节: (1:spring, 2:summer, 3:autumn, 4:winter): ");scanf("%d", &season);// 使用 switch 语句判断用户输入的季节switch (season){case SPRING:printf("你喜欢的季节是春天。\n");break;case SUMMER:printf("你喜欢的季节是夏天。\n");break;case AUTUMN:printf("你喜欢的季节是秋天。\n");break;case WINTER:printf("你喜欢的季节是冬天。\n");break;default:printf("你没有选择你喜欢的季节。\n");break;}return 0;
}

        在上面的示例中,使用 scanf 函数读取用户输入的整数值,并将其存储在枚举变量中。需要注意的是,用户输入的值必须是枚举常量的有效值,否则会进入 default 分支。


6 枚举数组

        枚举数组是指数组的元素类型为枚举类型。通过定义枚举数组,可以方便地管理和操作一组枚举常量。以下是一些关于枚举数组的示例和解释。

#include <stdio.h>int main()
{// 定义枚举类型 SOLAR_TERMS,表示 24 节气enum SOLAR_TERMS{LICHUN = 1,  // 立春YUSHUI,      // 雨水JINGZHE,     // 惊蛰CHUNFEN,     // 春分QINGMING,    // 清明GUYU,        // 谷雨LIXIA,       // 立夏XIAOMAN,     // 小满MANGZHONG,   // 芒种XIAZHI,      // 夏至XIAOSHU,     // 小暑DASHU,       // 大暑LIQIU,       // 立秋CHUSHU,      // 处暑BAILE,       // 白露QIUFEN,      // 秋分HANLU,       // 寒露SHUANGJIANG, // 霜降LIDONG,      // 立冬XIAOXUE,     // 小雪DAXUE,       // 大雪DONGZHI,     // 冬至XIAOHAN,     // 小寒DAHAN        // 大寒};// 定义一个枚举数组,存储多个节气enum SOLAR_TERMS terms[] = {LICHUN, YUSHUI, JINGZHE, CHUNFEN, QINGMING, GUYU,LIXIA, XIAOMAN, MANGZHONG, XIAZHI, XIAOSHU, DASHU,LIQIU, CHUSHU, BAILE, QIUFEN, HANLU, SHUANGJIANG,LIDONG, XIAOXUE, DAXUE, DONGZHI, XIAOHAN, DAHAN};// 获取数组的大小int num_terms = sizeof(terms) / sizeof(terms[0]);// 遍历枚举数组并输出每个节气for (int i = 0; i < num_terms; i++){switch (terms[i]){case LICHUN:printf("节气 %d: 立春\n", terms[i]);break;case YUSHUI:printf("节气 %d: 雨水\n", terms[i]);break;case JINGZHE:printf("节气 %d: 惊蛰\n", terms[i]);break;case CHUNFEN:printf("节气 %d: 春分\n", terms[i]);break;case QINGMING:printf("节气 %d: 清明\n", terms[i]);break;case GUYU:printf("节气 %d: 谷雨\n", terms[i]);break;case LIXIA:printf("节气 %d: 立夏\n", terms[i]);break;case XIAOMAN:printf("节气 %d: 小满\n", terms[i]);break;case MANGZHONG:printf("节气 %d: 芒种\n", terms[i]);break;case XIAZHI:printf("节气 %d: 夏至\n", terms[i]);break;case XIAOSHU:printf("节气 %d: 小暑\n", terms[i]);break;case DASHU:printf("节气 %d: 大暑\n", terms[i]);break;case LIQIU:printf("节气 %d: 立秋\n", terms[i]);break;case CHUSHU:printf("节气 %d: 处暑\n", terms[i]);break;case BAILE:printf("节气 %d: 白露\n", terms[i]);break;case QIUFEN:printf("节气 %d: 秋分\n", terms[i]);break;case HANLU:printf("节气 %d: 寒露\n", terms[i]);break;case SHUANGJIANG:printf("节气 %d: 霜降\n", terms[i]);break;case LIDONG:printf("节气 %d: 立冬\n", terms[i]);break;case XIAOXUE:printf("节气 %d: 小雪\n", terms[i]);break;case DAXUE:printf("节气 %d: 大雪\n", terms[i]);break;case DONGZHI:printf("节气 %d: 冬至\n", terms[i]);break;case XIAOHAN:printf("节气 %d: 小寒\n", terms[i]);break;case DAHAN:printf("节气 %d: 大寒\n", terms[i]);break;default:printf("未知节气\n");break;}}return 0;
}

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

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

相关文章

RTR_Chapter_6 下

程序化纹理 上文所提到的方法&#xff0c;都是给定一个纹理空间中的坐标位置&#xff0c;然后在图像中进行查找&#xff0c;从而获得纹理值。还有一种方法是对函数进行求值&#xff0c;然后作为对应位置上的纹理值&#xff0c;这就是程序化纹理&#xff08;procedural texture&…

序列化与反序列化基础及反序列化漏洞(附案例)

参考文章&#xff1a; [web安全原理]PHP反序列化漏洞 - 笑花大王 - 博客园 (cnblogs.com) 一、概念 为了能有效的存储数据而不丢失数据的类型和内容&#xff0c;经常需要通过序列化对数据进行处理&#xff0c;将数据进行序列化后&#xff0c;会生成一个字符串&#xff0c;字符…

使用TM1618控制LED了解P-MOS和N-MOS的开漏输出的不同

数据手册上的截取内容 手册中推荐的共阴/阳极电路 可以发现GRID总接LED的负极&#xff0c;SEG引脚接的是LED 正极 分析输出的MOS管类型可以很好的知道原因 图片来源 通过都是开漏输出可以看出&#xff0c;引脚引出的内部电路是不同的。P-mos引出的是漏极&#xff0c;导通时…

Redission · 可重入锁(Reentrant Lock)

前言 Redisson是一个强大的分布式Java对象和服务库&#xff0c;专为简化在分布式环境中的Java开发而设计。通过Redisson&#xff0c;开发人员可以轻松地在分布式系统中共享数据、实现分布式锁、创建分布式对象&#xff0c;并处理各种分布式场景的挑战。 Redisson的设计灵感来…

软考鸭微信小程序:助力软考备考的便捷工具

一、软考鸭微信小程序的功能 “软考鸭”微信小程序是一款针对软考考生的备考辅助工具&#xff0c;提供了丰富的备考资源和功能&#xff0c;帮助考生提高备考效率&#xff0c;顺利通过考试。其主要功能包括&#xff1a; 历年试题库&#xff1a;小程序内集成了历年软考试题&…

国内旅游:现状与未来趋势分析

在当今社会快速发展的背景下&#xff0c;国内旅游更是呈现出蓬勃的发展态势。中国&#xff0c;这片拥有悠久历史、灿烂文化和壮丽山河的广袤土地&#xff0c;为国内旅游的兴起与发展提供了得天独厚的条件。 本报告将借助 DataEase 强大的数据可视化分析能力&#xff0c;深入剖…

Java.数据结构.HashMap

目录 1基本概念 2数据结构 3常用操作 3.1 put(K key, V value)&#xff1a;插入键值对。 3.2 get(Object key)&#xff1a;根据键获取值。 3.3 remove(Object key)&#xff1a;移除键值对。 3.4 containsKey(Object key)&#xff1a;判断Map中是否包含指定的键。 3.5 c…

Android Camera2 与 Camera API技术探究和RAW数据采集

Android Camera2 Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口&#xff08;API&#xff09;&#xff0c;它取代了之前的 Camera API。以下是关于 Android Camera2 的一些主要信息&#xff1a; 主要特点&#xff1a; 强大的控制能力&#xff1a;提供…

神秘的二叉树

一.什么是树 都说艺术来源于生活&#xff0c;技术同样也是来源于生活。什么是树&#xff0c;它是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说…

小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户 注册…

VUE2常见问题以及解决方案汇总(不断更新中)

解决vue项目中 el-table 的 row-click 事件与行内点击事件冲突&#xff0c;点击事件不生效&#xff08;表格行点击事件和行内元素点击事件冲突&#xff09;需要阻止事件冒泡 问题描述 1.点击列的编辑按钮&#xff0c;会触发按钮本身事件&#xff0c;同时会触发行点击事件 2.点…

Kotlin 处理字符串和正则表达式(二十一)

导读大纲 1.1 处理字符串和正则表达式1.1.1 分割字符串1.1.2 正则表达式和三引号字符串1.1.3 多行三引号字符串IntelliJ IDEA 和 Android Studio 中三重引号字符串内部的语法高亮显示 1.1 处理字符串和正则表达式 Kotlin 字符串与 Java 字符串完全相同 可以将 Kotlin 代码中创建…

R包的安装、加载以及如何查看帮助文档

0x01 如何安装R包 一、通过R 内置函数安装&#xff08;常用&#xff09; 1.安装CRAN的R包 install.packages()是一个用于安装 R 包的重要函数。 语法&#xff1a;install.packages(pkgs, repos getOption("repos"),...) 其中&#xff1a; pkgs&#xff1a;要安…

问题-python-运行报错-SyntaxError: Non-UTF-8 code starting with ‘\xd5‘ in file 汉字编码问题

​ 编码: 把字符转换成字节序列的过程。因为计算机只能处 理二进制数据&#xff0c;所以不能直接处理文本&#xff0c;需要先把文本转换为二进制数据。 解码: 把二进制数据转换成字符的过程。把接收到的数据转换成程序中使用的编码方式。 ​ 这个报错原因就是编码和解码没达成…

【C++ STL】手撕vector,深入理解vector的底层

vector的模拟实现 前言一.默认成员函数1.1常用的构造函数1.1.1默认构造函数1.1.2 n个 val值的构造函数1.1.3 迭代器区间构造1.1.4 initializer_list 的构造 1.2析构函数1.3拷贝构造函数1.4赋值运算符重载 二.元素的插入,删除,查找操作2.1 operator[]重载函数2.2 push_back函数:…

[已解决] Install PyTorch 报错 —— OpenOccupancy 配环境

目录 关于 常见的初始化报错 环境推荐 torch, torchvision & torchaudio cudatoolkit 本地pip安装方法 关于 OpenOccupancy: 语义占用感知对于自动驾驶至关重要&#xff0c;因为自动驾驶汽车需要对3D城市结构进行细粒度感知。然而&#xff0c;现有的相关基准在城市场…

TriLite完成A轮扩展融资:加速AR微型投影仪技术创新与市场拓展

近日,全球领先的AR微型投影仪开发商TriLite宣布成功完成A轮扩展融资,将A轮融资总额提升至超过2000万欧元。这一轮融资不仅彰显了资本市场对TriLite技术实力和市场潜力的高度认可,更为其后续在AR微型投影仪领域的技术研发、产品迭代以及市场拓展提供了坚实的资金保障。以下是…

大厂笔试现已经禁用本地IDE怎么看

如果我说本来面试做题这种事情就是反人类你相信吗&#xff1f; 这个罪恶的源头就是 Google&#xff0c;说是为了选择高素质的计算机编程水平的人才&#xff0c;然后把面试就变成了考试&#xff0c;最大的受益者当然是印度人了。 当把一个考察过程变成标准化的考试过程&#x…

【AI知识点】置信区间(Confidence Interval)

置信区间&#xff08;Confidence Interval, CI&#xff09; 是统计学中用于估计总体参数的范围。它给出了一个区间&#xff0c;并且这个区间包含总体参数的概率等于某个指定的置信水平&#xff08;通常是 90%、95% 或 99%&#xff09;。与点估计不同&#xff0c;置信区间通过区…

Unity Input System自动生成配置

参考视频 创建及配置新输入系统 New Input System&#xff5c;Unity2022.2 最新教程《勇士传说》入门到进阶&#xff5c;4K_哔哩哔哩_bilibili ProjectSettings设置 Unity编辑器菜单栏选择Edit->Project Settings->Player->Other Settings,将Api Compatibility Level…