C++基础2:C++基本数据类型和控制结构
此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C++从入门到深入的专栏,参考书籍:《深入浅出 C {\rm C} C++》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C++精通面向对象编程》(曾凡锋等)。
2.C++基本数据类型和控制结构
2.1 C++基本数据类型
-
程序是由算法和数据组成的,数据是算法的前提,数据以常量和变量的形式出现,每个常量和变量都有数据类型;
-
C {\rm C} C++的数据类型主要分为基本数据类型和自定义类型,基本数据类型是 C {\rm C} C++编译系统内置的,自定义类型是用户以基本类型为基础定义的符合自己要求的类型;
-
C {\rm C} C++基本数据类型:
- 整型 ( i n t , s h o r t , l o n g ) ({\rm int,short,long}) (int,short,long);
- 字符型包括单字符型 ( c h a r ) ({\rm char}) (char)和宽字符型 ( w c h a r _ t ) ({\rm wchar\_t}) (wchar_t);
- 实型包括单精度型 ( f l o a t ) ({\rm float}) (float)和双精度型 ( d o u b l e ) ({\rm double}) (double);
-
非基本数据类型:
- 逻辑型 ( b o o l ) ({\rm bool}) (bool);
- 数组 ( t y p e [ ] ) ({\rm type[]}) (type[]);
- 指针 ( t y p e ∗ ) ({\rm type\ *}) (type ∗);
- 空类型 ( v o i d ) ({\rm void}) (void);
- 结构 ( s t r u c t ) ({\rm struct}) (struct);
- 联合 ( u n i o n ) ({\rm union}) (union);
- 枚举 ( e n u m ) ({\rm enum}) (enum);
- 类 ( c l a s s ) ({\rm class}) (class);
-
整型类型:根据表示范围分为基本整型、短整型、长整型、超长整型,其表示范围根据编译系统和平台而定。
// 1.基本整型:以int关键字定义; int score;// 2.短整型:用short int或short关键字定义; short int age; short age;// 3.长整型:用long int或long关键字定义; long int height; long height;// 4.超长整型:用long long int或long long关键字定义; long long int studentID; long long studentID;
// example2_1.cpp /*** 作者:罗思维* 时间:2023/09/24* 描述:确定整型类型在内存中所占的字节数。*/ #include <iostream> using namespace std;int main() {cout << "sizeof(short int) = " << sizeof(short int) << "字节" << endl;cout << "sizeof(int) = " << sizeof(int) << "字节" << endl;cout << "sizeof(long int) = " << sizeof(long int) << "字节" << endl;cout << "sizeof(long long int) = " << sizeof(long long int) << "字节" << endl;return 0; }
// example2_1.cpp程序执行结果(编译系统为:Visual Studio Code编译系统) sizeof(short int) = 2字节 sizeof(int) = 4字节 sizeof(long int) = 4字节 sizeof(long long int) = 8字节
- 短整型: − 2 15 ~ 2 15 − 1 -2^{15}~2^{15}-1 −215~215−1,即 − 32768 ~ 32767 -32768~32767 −32768~32767;
- 基本整型: − 2 31 ~ 2 31 − 1 -2^{31}~2^{31}-1 −231~231−1,即 − 2147483648 ~ 2147483647 -2147483648~2147483647 −2147483648~2147483647;
- 长整型: − 2 31 ~ 2 31 − 1 -2^{31}~2^{31}-1 −231~231−1,即 − 2147483648 ~ 2147483647 -2147483648~2147483647 −2147483648~2147483647;
- 超长整型: − 2 63 ~ 2 63 − 1 -2^{63}~2^{63}-1 −263~263−1,即 − 9223372036854775808 ~ 9223372036854775807 -9223372036854775808~9223372036854775807 −9223372036854775808~9223372036854775807;
-
实型类型:亦称为浮点数,表示形式分为十进制小数形式和指数形式,十进制小数形式由数字和小数点组成,且必须含有小数点,指数形式利用数学上的指数形式表示,形式为数字 + E {\rm +E} +E指数, E {\rm E} E可以为小写 e {\rm e} e,实型数据类型变量分为三种,如下:
// 1.单精度:利用float关键字定义; float fNum;// 2.双精度:利用double关键字定义; double dNum;// 3.长双精度:利用long double定义; long double ldNum;
// example2_2.cpp /*** 作者:罗思维* 时间:2023/09/24* 描述:确定实型类型在内存中所占的字节数。*/ #include <iostream> using namespace std;int main() {cout << "sizeof(float) = " << sizeof(float) << "字节" << endl;cout << "sizeof(double) = " << sizeof(double) << "字节" << endl;cout << "sizeof(long double) = " << sizeof(long double) << "字节" << endl;return 0; }
// example2_2.cpp程序结果 sizeof(float) = 4字节 sizeof(double) = 8字节 sizeof(long double) = 16字节
// example2_3.cpp /*** 作者:罗思维* 时间:2023/09/24* 描述:实型数据的运算存在一定的误差。*/ #include <iostream> using namespace std;int main() {float fNumber1, fNumber2;fNumber1 = 123456789.0;fNumber2 = fNumber1 + 10;cout << "fNumber1 = " << fNumber1 << endl;cout << "fNumber2 = " << fNumber2 << endl;return 0; }
// example2_3.cpp程序结果: fNumber1 = 1.23457e+08 fNumber2 = 1.23457e+08
-
字符类型
-
字符在 C {\rm C} C++中用单引号(‘’)表示,字符类型数据就是存储字符的数据类型,字符类型变量用关键字 c h a r {\rm char} char定义;
-
字符类型的变量在内存中占用 1 1 1个字节,即 8 8 8位,在存储时,字符变量存储的是一个 − 128 ~ 127 -128~127 −128~127的数值,存储的字符是字符的 A S C I I {\rm ASCII} ASCII码;
-
用"\“表示的字符称为转义字符,用这个符号进行转义的字符一般是控制字符,控制字符不可打印,在程序中无法用一般形式表示,因此必须用”\"开头的字符序列表示;
-
常用的转义字符及其含义:
字符形式 字符形式 字符形式 含义 含义 含义 A S C I I {\rm ASCII} ASCII码 \ n {\rm n} n 换行,当前位置移动到下一行开头 换行,当前位置移动到下一行开头 换行,当前位置移动到下一行开头 10 10 10 \ t {\rm t} t 水平制表符,当前位置移动到下一个 T a b 位置 水平制表符,当前位置移动到下一个{\rm Tab}位置 水平制表符,当前位置移动到下一个Tab位置 9 9 9 \ b {\rm b} b 退格,当前位置移动到前一列位置 退格,当前位置移动到前一列位置 退格,当前位置移动到前一列位置 8 8 8 \ r {\rm r} r 回车,当前位置移动到本行开头 回车,当前位置移动到本行开头 回车,当前位置移动到本行开头 13 13 13 \ f {\rm f} f 换页,当前位置移动到下一页开头 换页,当前位置移动到下一页开头 换页,当前位置移动到下一页开头 12 12 12 \\ 表示反斜杠 表示反斜杠 表示反斜杠"\" 92 92 92 \’ 表示单引号 表示单引号 表示单引号“ ’ ” 39 39 39 \" 表示双引号 表示双引号 表示双引号“ " ” 34 34 34
-
-
逻辑类型:亦称布尔型,表示真和假的数据类型,逻辑类型变量用关键字 b o o l {\rm bool} bool定义,逻辑类型变量只有真和假两种情况,真用 t r u e {\rm true} true表示,假用 f a l s e {\rm false} false表示,在 C {\rm C} C++中,真用 1 1 1定义,假用 0 0 0定义;
// example2_4.cpp /*** 作者:罗思维* 时间:2023/09/25* 描述:利用逻辑类型变量的逻辑运算判断学生成绩是否及格。*/ #include <iostream> using namespace std;int main() {bool bIsPassed;int nScore1 = 80, nScore2 = 70;bIsPassed = nScore1 >= 60 && nScore2 >= 60;cout << "bIsPassed值为:" << bIsPassed << endl;if (bIsPassed){cout << "成绩及格,请及时打印成绩." << endl;}else{cout << "成绩不及格,请重新考试." << endl;}return 0; }
-
变量存储限定符:存储类型用在变量前加存储限定符表示,可以对变量在内存中的存储进行控制,常用的变量限定符如下:
- a u t o {\rm auto} auto:采用堆栈方式分配内存空间,是暂时性的存储,其存储空间可以被其他变量多次覆盖使用,即不是独占的;
- r e g i s t e r {\rm register} register:变量存储在通用寄存器;
- e x t e r n {\rm extern} extern:此存储类型变量在程序中的所有函数和程序段中都可以被使用;
- s t a t i c {\rm static} static:以固定的地址存放变量,在整个程序运行期间都有效;
-
强制类型转换:开发者自行进行的转换。
// 1.强制类型转换格式 类型名(表达式) 或 (类型名)表达式 // 类型名是表达式转换后的数据类型;// 2.将long类型值转换为int类型值 long lNumber = 100.0; int nNumber = (int)lNumber;// 3.Tips: // 3.1 强制类型转换是一种不安全的转换,从高类型数据向低类型数据转换时可能有精度的损失; // 3.2 强制类型转换是暂时性的,不会改变原来数据的数据类型;
// example2_5.cpp /*** 作者:罗思维* 时间:2023/09/25* 描述:强制类型转换实例。*/ #include <iostream> using namespace std;int main() {double lNumber = 0.0;int nNumber = 0;nNumber = 32767;lNumber = (double)nNumber; // 将int类型转换为double类型值(低->高);cout << "nNumber = " << nNumber << endl;cout << "lNumber = " << lNumber << endl;lNumber = 3.14;nNumber = (int)lNumber; // 将double类型转换为int类型值(高->低);cout << "lNumber = " << lNumber << endl;cout << "nNumber = " << nNumber << endl;return 0; }
2.2 实战1
项目需求:提示用户输入三角形的 3 3 3条边长,计算出三角形的面积并取整,将结果输出到输出设备上。
需求分析:
- 输入信息;
- 判断 3 3 3条边是否能组成一个三角形;
- 可以组成三角形的情况下计算三角形的面积;
- 输出信息;
处理步骤:
程序实现 ( p r o j e c t 2 _ 1. c p p ) ({\rm project2\_1.cpp}) (project2_1.cpp):
/*** 作者:罗思维* 时间:2023/09/25* 描述:计算三角形面积。*/
#include <iostream>
#include <math.h>
using namespace std;int main()
{/*** 参数说明:* dLine1,dLine2,dLine3: 三角形三边边长;* dArea: 三角形实际面积;* dP: 三角形边长之和的一半;* nArea: 三角形取整面积;* bIsTriangle: 三角形的组成条件;*/double dLine1, dLine2, dLine3;double dArea, dP;long nArea;bool bIsTriangle;cout << "请输入边长1:";cin >> dLine1;cout << "请输入边长2:";cin >> dLine2;cout << "请输入边长3:";cin >> dLine3;bIsTriangle = ((dLine1 + dLine2) <= dLine3) || ((dLine2 + dLine3) <= dLine1) || ((dLine3 + dLine1) <= dLine2);if (bIsTriangle){cout << "不是一个有效的三角形." << endl;exit(1);};dP = (dLine1 + dLine2 + dLine3) / 2;dArea = sqrt(dP * (dP - dLine1) * (dP - dLine2) * (dP - dLine3));nArea = (long)dArea;cout << "三角形面积:" << dArea << endl;cout << "三角形取整面积:" << nArea << endl;return 0;
}
2.3 C++语句与控制结构
-
表达式:指用运算符连接各个运算对象,合乎语法规则的式子,表达式后面加上分号构成了表达式语句;
// 1.空语句:指只有一个分号没有表达式的语句; // 空语句不做任何运算,是作为一种形式上的语句填充在控制结构中; // 语法格式: ;// 2.赋值语句:由赋值表达式加分号构成的语句; // 语法格式: 变量 赋值运算符 表达式; age = 18;// 3.函数调用语句:调用函数语句的表达式;
-
流程图:程序流程图是人们对解决问题的方法、思路或算法的一种描述,流程图用一些专用符号绘制,如:长方形、菱形、椭圆和小圆,这些符号用箭头连接,称为流程;程序中一般有三种控制结构,分别为:顺序结构、选择结构、循环结构,常见流程图图例如下:
-
顺序结构:指按照语句在程序中的先后次序一条一条地顺序执行的过程;
-
选择结构:主要由 i f {\rm if} if和 s w i t c h {\rm switch} switch控制, i f {\rm if} if为单项选择结构, s w i t c h {\rm switch} switch为多项选择结构。
// 1.if语句的基本形式 if (条件表达式) {语句序列; }// 2.if-else语句形式 if (条件表达式) {语句序列1; } else {语句序列2; }// 3.if-else if-else语句形式 if (条件表达式1) {语句序列1; } else if (条件表达式2) {语句序列2; } ... else {语句序列n; }// 4.switch语句形式 switch (变量表达式) // 变量表达式只能是整型、字符型或枚举型表达式; {case 常量表达式1:<语句序列1>;break;case 常量表达式2:<语句序列2>;break;...case 常量表达式n:<语句序列n>;break;default:<语句序列n+1>; }
-
循环结构:在给定条件成立时,反复执行某程序段,直到条件不成立为止,给定条件称为循环条件,反复执行的程序段称为循环体。
// 1.while结构:通过判断条件是否成立来决定循环的继续和结束; while(表达式) // 表达式是循环条件; {语句序列; // 语句序列为循环体; }// 2.do-while结构: do {语句序列; }while(条件表达式);// 3.for结构: /** * 表达式1:循环初始值; * 表达式2:循环结束值; * 表达式3:循环的增量; */ for(表达式1;表达式2;表达式3) {语句序列; }// 4.基于范围的for语句,遍历序列中的每一个元素,并对每个元素进行某种操作; for(数据类型 变量:序列) // 序列是一个对象,可以是数组名、对象名、容器名等; {语句序列; // 对每个元素进行的操作; }
-
-
控制结构实例:
-
i f {\rm if} if语句实例: e x a m p l e 2 _ 6. c p p {\rm example2\_6.cpp} example2_6.cpp。
/*** 作者:罗思维* 时间:2023/09/26* 描述:if语句实例。*/ #include <iostream> using namespace std;int main() {int nNumber;cout << "请输入一个整数:";cin >> nNumber;if (nNumber > 0){cout << "输入的整数是正数." << endl;}return 0; }
-
i f − e l s e {\rm if-else} if−else语句实例: e x a m p l e 2 _ 7. c p p {\rm example2\_7.cpp} example2_7.cpp。
/*** 作者:罗思维* 时间:2023/09/26* 描述:if-else语句实例。*/ #include <iostream> using namespace std;int main() {int nNumber;cout << "请输入一个整数:";cin >> nNumber;if (nNumber > 0){cout << "输入的整数是正数." << endl;}else{cout << "输入的整数不是正数." << endl;}return 0; }
-
i f − e l s e i f − e l s e {\rm if-else\ if-else} if−else if−else语句实例: e x a m p l e 2 _ 8. c p p {\rm example2\_8.cpp} example2_8.cpp。
/*** 作者:罗思维* 时间:2023/09/26* 描述:if-else if-else语句实例。*/ #include <iostream> using namespace std;int main() {int nScore;cout << "请输入你的分数:";cin >> nScore;if (nScore >= 0 && nScore <= 100){if (nScore >= 90){cout << "分数等级:A." << endl;}else if (nScore >= 80 && nScore < 90){cout << "分数等级:B." << endl;}else if (nScore >= 70 && nScore < 80){cout << "分数等级:C." << endl;}else if (nScore >= 60 && nScore < 70){cout << "分数等级:D." << endl;}else{cout << "分数等级:E." << endl;}}else{cout << "输入的分数不正确." << endl;}return 0; }
-
s w i t c h {\rm switch} switch语句实例: e x a m p l e 2 _ 9. c p p {\rm example2\_9.cpp} example2_9.cpp。
/*** 作者:罗思维* 时间:2023/09/26* 描述:switch语句实例,判断四季。*/ #include <iostream> using namespace std;int main() {int nSeason;cout << "请输入你要查询的月份:";cin >> nSeason;switch (nSeason){case 12:case 1:case 2:cout << nSeason << "月份所处季节为冬季." << endl;break;case 3:case 4:case 5:cout << nSeason << "月份所处季节为春季." << endl;break;case 6:case 7:case 8:cout << nSeason << "月份所处季节为夏季." << endl;break;case 9:case 10:case 11:cout << nSeason << "月份所处季节为秋季." << endl;break;default:cout << "Error." << endl;break;}return 0; }
-
w h i l e {\rm while} while语句实例: e x a m p l e 2 _ 10. c p p {\rm example2\_10.cpp} example2_10.cpp。
/*** 作者:罗思维* 时间:2023/09/27* 描述:while语句实例,计算1+2+3+...+100的值。*/ #include <iostream> using namespace std;int main() {int num = 1, sum = 0;while (num <= 100){sum = sum + num;num++;}cout << "1+2+...+100 = " << sum << endl;return 0; }
-
d o − w h i l e {\rm do-while} do−while语句实例: e x a m p l e 2 _ 11. c p p {\rm example2\_11.cpp} example2_11.cpp。
/*** 作者:罗思维* 时间:2023/09/27* 描述:do-while语句实例,计算1+2+3+...+100的值。*/ #include <iostream> using namespace std;int main() {int num = 1, sum = 0;do{sum = sum + num;num++;} while (num <= 100);cout << "1+2+...+100 = " << sum << endl;return 0; }
-
f o r {\rm for} for语句实例: e x a m p l e 2 _ 12. c p p {\rm example2\_12.cpp} example2_12.cpp。
/*** 作者:罗思维* 时间:2023/09/27* 描述:for语句实例,计算1+2+3+...+100的值。*/ #include <iostream> using namespace std;int main() {int sum = 0;for (int num = 1; num <= 100; num++){sum = sum + num;}cout << "1+2+...+100 = " << sum << endl;return 0; }
-
f o r {\rm for} for语句遍历数组中的元素: e x a m p l e 2 _ 13. c p p {\rm example2\_13.cpp} example2_13.cpp。
/*** 作者:罗思维* 时间:2023/09/27* 描述:for语句实例,遍历数组中的元素。*/ #include <iostream> using namespace std;int main() {char c[] = {'W', 'i', 'l', 'l', 'a', 'r', 'd'};for (char word : c){cout << word;}cout << endl;return 0; }
-
-
b r e a k {\rm break} break语句: b r e a k {\rm break} break语句在 w h i l e 、 f o r 、 d o − w h i l e 、 s w i t c h {\rm while、for、do-while、switch} while、for、do−while、switch结构中执行时,使程序立即退出这些结构,从而执行该结构后面的第一条语句。
-
b r e a k {\rm break} break语句实例: e x a m p l e 2 _ 14. c p p {\rm example2\_14.cpp} example2_14.cpp。
/*** 作者:罗思维* 时间:2023/09/28* 描述:break语句实例,计算1+2+...+100;*/ #include <iostream> using namespace std;int main() {int sum = 0;for (int i = 1;; i++){sum += i;if (i == 100){break;}}cout << "1+2+...+100 = " << sum << endl;return 0; }
-
-
c o n t i n u e {\rm continue} continue语句: c o n t i n u e {\rm continue} continue语句在 w h i l e 、 f o r 、 d o − w h i l e {\rm while、for、do-while} while、for、do−while结构中执行时,跳过当前循环的其余语句,直接进入下一轮循环。
-
c o n t i n u e {\rm continue} continue语句实例: e x a m p l e 2 _ 15. c p p {\rm example2\_15.cpp} example2_15.cpp。
/*** 作者:罗思维* 时间:2023/09/29* 描述:continue语句实例,计算1-100内偶数和;*/ #include <iostream> using namespace std;int main() {int sum = 0;for (int i = 1; i <= 100; i++){if (i % 2 == 0){sum = sum + i;}}cout << "1-100内偶数和为:" << sum << endl;return 0; }
-
2.4 实战2
项目需求:求某整数段区间中素数并输出。
需求分析:
- 提示用户输入整数段区间;
- 判断素数规则:对于数字 n { n} n,如果其无法被任何从 2 2 2到 n \sqrt{n} n的数整除,则为素数。
代码实现 ( p r o j e c t 2 _ 2. c p p ) ({\rm project2\_2.cpp}) (project2_2.cpp):
/*** 作者:罗思维* 时间:2023/09/29* 描述:求某整数区间段的素数。*/
#include <iostream>
#include <math.h>
using namespace std;int main()
{/*** 参数说明:* nStart: 整数区间最小值;* nEnd: 整数区间最大值;* nCnt1,nCnt2: 循环计数器;* nSqrt: 存储平方根值;* nNum: 计算素数个数;*/int nStart = 0, nEnd = 0;int nCnt1 = 0, nCnt2 = 0;int nSqrt;int nNum = 0;cout << "请输入区间下限:";cin >> nStart;cout << "请输入区间上限:";cin >> nEnd;if (nStart <= 1){cout << "区间下限应该大于1." << endl;return 1;}for (nCnt1 = nStart; nCnt1 <= nEnd; nCnt1 += 1){nSqrt = sqrt(nCnt1);for (nCnt2 = 2; nCnt2 <= nSqrt; nCnt2++) // 判断nCnt1是否能被2到nSqrt的数整除;{if (nCnt1 % nCnt2 == 0){break;}}if (nCnt2 >= nSqrt + 1) // 如果nCnt2>=nSqrt+1,说明nCnt1不能被2到nSqrt的数整除;{cout << nCnt1 << "\t";nNum = nNum + 1;if (nNum % 10 == 0){cout << endl;}}}cout << endl;return 0;
}
2.5 实战3
项目需求:根据用户输入的年份判断年份是否为闰年。
需求分析:
- 用户输入年份;
- 判断闰年的规则:年份可以被 4 4 4整除且不能被 100 100 100整除或能被 400 400 400整除的为闰年。
代码实现 ( p r o j e c t 2 _ 3. c p p ) ({\rm project2\_3.cpp}) (project2_3.cpp):
/*** 作者:罗思维* 时间:2023/09/29* 描述:提示用户输入年份,判断是否为闰年。*/
#include <iostream>
using namespace std;int main()
{int year = 0;cout << "请输入你需要查询的年份:";cin >> year;while (year <= 0){cout << "输入的年份应该大于0,请重新正确输入年份:";cin >> year;}if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){cout << year << " is leap year." << endl;}else{cout << year << "is not leap year." << endl;}return 0;
}
相关文章:

C++基础2:C++基本数据类型和控制结构
此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏,参考书籍:《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 2.C基本数据类型和控制结构 2.1 C基本数据类型 程序是由算法…...

HFSS仿真双频微带天线学习笔记
HFSS仿真双频微带天线 文章目录 HFSS仿真双频微带天线1、 求解器设置2、 建模3、 激励方式设置4、 边界条件设置5、 扫频设置6、 设计检查,仿真分析7、 数据后处理 这里重点关注HFSS软件的操作,关于理论知识将在后面的文章中进行更新。 设计要求…...
【十一】【SQL】外连接(左外连接,右外连接)
数据库中的外连接(Outer Join)用于连接两个表,并包括两个表中的匹配行以及左表(LEFT JOIN)或右表(RIGHT JOIN)中未匹配的行。外连接分为两种主要类型: 左外连接(LEFT OU…...

敏捷开发模型:一种灵活、协作和持续的软件开发方法
敏捷开发模型:一种灵活、协作和持续的软件开发方法 引言 在软件开发领域,随着市场需求的不断变化和技术的迅速发展,传统的瀑布模型逐渐暴露出其局限性。为了应对这些挑战,敏捷开发模型应运而生。敏捷开发模型强调灵活、协作和持…...

软件设计师10--计算机组成与体系结构章节回顾
软件设计师10--计算机组成与体系结构章节回顾 章节重要内容考情分析 章节重要内容 考情分析...

数据库分库分表中间件选择
目前分库分表的中间件有三种设计思路,分别是: 采用分散式架构,适用于用Java开发的高性能轻量级OLTP应用程序,以Sharding-JDBC为代表。采用中间层Proxy架构,提供了静态输入和所有语言支持,适用于OLAP应用程…...

代码随想录算法训练营第22天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
目录 一、力扣235.二叉搜索树的最近公共祖先1.1 题目1.2 思路1.3 代码 二、力扣701.二叉搜索树中的插入操作2.1 题目2.2 思路2.3 代码 三、力扣450.删除二叉搜索树中的节点3.1 题目3.2 思路3.3 代码3.4 总结 一、力扣235.二叉搜索树的最近公共祖先 1.1 题目 1.2 思路 利用二叉…...
基于SpringBoot的医护人员排班系统详细开题报告(源码)
项目源码:https://gitee.com/oklongmm/biye2 引言 医护人员排班系统是医疗机构中的重点管理工作之一。借助现代化的计算机技术,可以大大提升排班的效率和精准度。因此,本研究旨在使用SpringBoot框架设计和实现一个功能完善的医护人员排班…...

CDH6.3.1离线安装
一、从官方文档整体认识CDH 官方文档地址如下: CDH Overview | 6.3.x | Cloudera Documentation CDH是Apache Hadoop和相关项目中最完整、测试最全面、最受欢迎的发行版。CDH提供Hadoop的核心元素、可扩展存储和分布式计算,以及基于Web的用户界面和重…...
Pytorch之卷积操作
卷积是一种基本的数学操作,常用于信号处理和图像处理领域。在计算机视觉中,卷积操作是一种重要的技术,用于提取图像的特征并进行图像处理。 卷积操作基于一个卷积核(也称为滤波器或权重),它是一个小的矩阵…...

2024年春招小红书前端实习面试题分享
文章目录 导文面试重点一、方便介绍一下,你之前实习都做了什么嘛?二、 可以讲一下封装组件相关逻辑嘛?1. 为什么要封装组件?2. 封装组件的步骤3. 封装组件的原则4. 组件的复用和扩展5. 组件的维护和文档 三、项目的性能优化你有什…...

软件测试--性能测试工具JMeter
软件测试--性能测试工具JMeter 主流性能测试工具1.主流性能测试工具Loadrunner和Jmeter对比 —— 相同点2.主流性能测试工具Loadrunner和Jmeter对比 —— 不同点JMeter基本使用JMeter环境搭建1.安装JDK:2.安装Jmeter:3.注意点:JMeter功能概要1. JMeter文件目录介绍1.1 bin目…...

c++/c图的邻近矩阵表示
#include<iostream> using namespace std;#define MaxVerterNum 100 typedef char VerterType; typedef int EdgeType; typedef struct {VerterType vexs[MaxVerterNum]; // 存储顶点EdgeType edges[MaxVerterNum][MaxVerterNum]; // 存储邻接矩阵int n, e; // 顶点数和边…...
cocos-lua定时器用法
本文介绍cocos-lua(非Quick-cocos)的定时器用法 定时器按是否会随节点销毁,可分为节点调度器和全局调度器 一.节点调度器 frameworks\cocos2d-x\cocos\scripting\lua-bindings\script\cocos2d\deprecated.lua中实现了了schedule和 performWithDelay 1.1.schedul…...

激活函数Swish(ICLR 2018)
paper:Searching for Activation Functions 背景 深度网络中激活函数的选择对训练和任务表现有显著的影响。目前,最成功和最广泛使用的激活函数是校正线性单元(ReLU)。虽然各种手工设计的ReLU替代方案被提出,但由于在…...
【C++ 标准流,文件流】
C 标准流,文件流 ■ 标准输入,输出流,■ 文件流(ofstream写入,ifstream读取,fstream创建-写入-读取)■ open()■ ofstream■ ifstream■ 流插入<<■ 文件位置指针 ■ 标准输入,…...

【排序】详解冒泡排序
一、思想 冒泡排序的基本思想是利用两两比较相邻记录的方式,通过一系列的比较和交换操作,使得较大或较小的元素逐渐移动到数列的一端。在每一轮的排序过程中,都会从数列的起始位置开始,对相邻的元素进行比较,如果它们…...

什么是Docker容器?
Docker是一种轻量级的虚拟化技术,同时是一个开源的应用容器运行环境搭建平台,可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux或Windows等系统的服务器上。相较于传统虚拟机,Docker容器提供轻量化的…...

(C++练习)选择题+编程题
个人主页:Lei宝啊 愿所有美好如期而遇 选择题 以下程序输出结果是什么() class A{public:virtual void func(int val 1){ std::cout<<"A->"<< val <<std::endl;}virtual void test(){ func();}};class B…...

【鸿蒙开发】第十五章 ArkTS基础类库-并发
1 简述 并发是指在同一时间段内,能够处理多个任务的能力。为了提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰,OpenHarmony系统提供了异步并发和多线程并发两种处理策略,ArkTS支持异步并发和多线程并发。并发能力在多…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...