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

【NOI】C++程序设计入门三

文章目录

  • 前言
  • 一、大杂烩
    • 1.导入
    • 2.常量
    • 3.标识符
    • 4.关键字
    • 5.整型补充
      • 5.1 short:短整型
      • 5.2 long:长整型
      • 5.3 long long:长长整型
  • 二、例题讲解
    • 问题:1597. 买文具
    • 问题:1596. 火柴棒三角形问题
    • 问题:1417. 买文具
    • 问题:1320. 时钟旋转
    • 问题:1323. 扩建花圃问题
    • 问题:1462. 小明的游泳时间
  • 三、总结
  • 四、感谢


前言

在经历了初步的编程概念洗礼后,你已经掌握了变量、数据类型、基本的算术运算符等核心知识点。本篇内容旨在巩固之前所学,并通过实例深入,带你领略C++语言的魅力,为NOI之路打下坚实基础。

我们将围绕以下几个关键点进行深化学习和实践:

  1. 常量的使用:理解常量与变量的区别,掌握字面常量与符号常量的定义及应用,特别是在处理固定数值如圆周率时,如何提升代码的可读性和维护性。

  2. 标识符的规范:学习如何正确命名标识符,遵循C++的命名规则,确保代码的清晰度和专业性,同时避免与关键字冲突。

  3. 整型变量的深入:除了基础的int类型,还将探索short、long、long long等整数类型,了解它们在内存占用、数值范围上的差异,以及如何根据实际需求选择最合适的类型。

  4. 实战演练:通过解决具体问题,如“扩建花圃”和“小明的游泳时间”,我们将理论知识转化为实践,强化整数运算能力,体会C++在解决实际问题中的灵活性和效率。

学习路线:C++从入门到NOI学习路线

学习大纲:C++全国青少年信息学奥林匹克竞赛(NOI)入门级-大纲


一、大杂烩

1.导入

在上一节中各位学的怎么样?是否把变量、数据类型、int整型、算术运算符等知识点弄清楚?

在这里插入图片描述

上一节的知识点确实很多,对于初学者来说还是比较有难度的,因此我们今天不讲新知识。

在这里插入图片描述

咳咳~,简单对前面的知识进行补充。

在这里插入图片描述

2.常量

常量和变量一听名字就知道两个差不多,不同的是常量在程序执行期间其值不会发生改变,也就是不能重新赋值。

常量可以分为字面常量和符号常量两种类型。

在这里插入图片描述

C++中的字面常量不需要定义。字面常量是指在程序中直接使用的常量值,例如整型常量、字符型常量、字符串常量等。这些常量的值在程序编译时就已经确定了,因此不需要进行定义。例如:

int num = 10; // 定义一个整型变量num并初始化为10
int result = num + 20; // 使用字面常量20进行计算

在上面的代码中,20就是一个整型字面常量,它直接出现在程序中进行计算,而不需要进行定义。

而如果要在程序中多次使用同一个常量值,并且这个值写起来比较繁琐,比如计算圆的面积、周长、体积,我们需要多次用到圆周率3.14159265358979323846,这个时候就需要符号常量。

在这里插入图片描述

圆周率是一个确定的值(有限范围内),把圆周率定义为符号常量,这样可以提高程序的可读性和可维护性。例如:

#include <iostream>
using namespace std;const double PI = 3.14159265358979323846; // 定义圆周率常量int main() {double r, c, s, v;cout << "请输入圆的半径:";cin >> r;c = 2 * PI * r; // 计算圆的周长s = PI * r * r; // 计算圆的面积v = 4.0 / 3.0 * PI * r * r * r; // 计算圆的体积cout << "圆的周长为:" << c << endl;cout << "圆的面积为:" << s << endl;cout << "圆的体积为:" << v << endl;return 0;
}

C++中定义符号常量的方法:使用const关键字。使用const关键字定义符号常量的语法格式如下:

const 数据类型 常量名 = 常量值;

只是在变量的定义基础上加了const关键字,需要注意的是常量名全部大写,养成良好的代码习惯。

3.标识符

其实标识符就是我们前面讲到的变量名。准确的说变量名则是标识符的一种。

数据类型 变量名 =;

标识符是用来标识变量、函数、类、结构体等各种程序实体的名称。

标识符必须以字母、下划线或者汉字开头,后面可以跟字母、下划线、数字或者汉字。C++标识符是区分大小写的,长度没有限制。以下是一些C++标识符的命名规则:

  1. 标识符不能是C++关键字,例如if、else、while等。
  2. 标识符不能包含空格。
  3. 标识符不能以数字开头。
  4. 标识符不能包含特殊字符,例如@、#、$等。
  5. 标识符应该具有描述性,能够清晰地表达其含义。

4.关键字

C++关键字是指在C++编程语言中具有特殊含义的保留字,这些关键字不能作为标识符使用。

C++中的关键字包括:auto、bool、break、case、catch、char、class、const、constexpr、continue、decltype、default、delete、do、double、dynamic_cast、else、enum、explicit、export、extern、false、float、for、friend、goto、if、inline、int、long、mutable、namespace、new、nullptr、operator、private、protected、public、register、reinterpret_cast、return、short、signed、sizeof、static、static_assert、static_cast、struct、switch、template、this、thread_local、throw、true、try、typedef、typeid、typename、union、unsigned、using、virtual、void、volatile、wchar_t、while等。

并不需要将关键字全部记住,在Dev C++中关键字都会被不同的颜色和字体粗细区别出来。

5.整型补充

C++中的整型变量是一种用来存储整数值的数据类型。整数就是没有小数部分的数字。

以下是一些除 int 以外常见的C++整数变量类型:

5.1 short:短整型

占用2个字节,范围为-32768到32767。

声明一个short类型的变量a,并将其初始化为-123:

short a = -123;

5.2 long:长整型

其大小可以与int相同(即4个字节),但在很多现代系统尤其是64位系统上,通常占用8个字节(64位),范围扩大到-9223372036854775808到9223372036854775807。

#include <iostream>
using namespace std;int main() {long a = 2147483647;a++;cout << "a = " << a << endl; // 输出:a = 2147483648return 0;
}

5.3 long long:长长整型

long long是一种整数类型,它可以存储更大的整数值。long long类型的变量至少占用8个字节(64位),可以存储的最大值为9223372036854775807,最小值为-9223372036854775808。

#include <iostream>
using namespace std;int main() {long long b = 9223372036854775807;b++;cout << "b = " << b << endl; // 输出:b = -9223372036854775808return 0;
}

short、int、long和long long在运行速度上没有明显的区别,它们的区别在于占用的空间大小和能够表示的整数范围。

二、例题讲解

问题:1597. 买文具

类型:基本运算、整数运算


题目描述:

花花去文具店买了 1 支笔和 1块橡皮,已知笔 x 元/ 支,橡皮 y元 / 块,花花付给了老板 n 元,请问老板应该找给花花多少钱?

输入:

三个整数x、y、n ,分别代表了笔的单价、橡皮的单价和花花付给老板的钱(已知花花付给老板的钱 n≥x+y )。

输出:

一个整数,代表老板应该找给花花的钱。

样例:

输入:

2 1 10

输出:

7

在这里插入图片描述


1.分析问题

  1. 已知:笔的单价x、橡皮的单价y和花花付给老板的钱n。
  2. 未知:请问老板应该找给花花多少钱s?
  3. 关系:s=n-x-y。

2.定义变量

    // 二、数据定义 int x, y, n, s; // 定义变量x存储笔单价,y存储橡皮单价,n存储支付总金额,s存储找零金额

3.输入数据

    // 三、数据输入 cin>>x>>y>>n; // 输入笔单价、橡皮单价及顾客支付的总金额

4.数据计算

    // 四、数据计算 s = n - (x + y); // 计算出老板应该找回给花花的金额

5.输出结果

    // 五、输出结果 cout<<s; // 输出应找回的金额return 0; // 程序正常结束,返回值为0

完整代码如下:

#include<bits/stdc++.h> 
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知:笔的单价(x)、橡皮的单价(y)和顾客花花付给老板的总金额(n)// 未知:老板应该找给花花多少钱(s)// 关系:s = n - (x + y),即总金额减去商品总价等于找零// 二、数据定义 int x, y, n, s; // 定义变量x存储笔单价,y存储橡皮单价,n存储支付总金额,s存储找零金额// 三、数据输入 cin>>x>>y>>n; // 输入笔单价、橡皮单价及顾客支付的总金额// 四、数据计算 s = n - (x + y); // 计算出老板应该找回给花花的金额// 五、输出结果 cout<<s; // 输出应找回的金额return 0; // 程序正常结束,返回值为0
}

问题:1596. 火柴棒三角形问题

类型:基本运算、整数运算


题目描述:

如下图所示,摆 1 个火柴棒三角形需要 3 根火柴,那么摆 2 个火柴棒三角形就需要 6 根火柴,请问摆 n 个火柴棒三角形需要多少根火柴?

输入:

一个整数 n ,代表想要摆放的火柴棒三角形的数量。

输出:

一个整数,代表了需要多少根火柴的数量。

样例:

输入:

3

输出:

9

在这里插入图片描述


1.分析问题

  1. 已知:想要摆放的火柴棒三角形的数量n。
  2. 未知:需要多少根火柴的数量s。
  3. 关系:s=n * 3。

2.定义变量

    // 二、数据定义 int n, s; // 定义变量n存储三角形数量,s存储所需火柴棒总数

3.输入数据

    // 三、数据输入 cin>>n; // 从标准输入读取需要摆放的等边三角形火柴棒图形的数量

4.数据计算

    // 四、数据计算 s = n * 3; // 根据每个等边三角形需要3根火柴棒来计算所需的火柴棒总数

5.输出结果

    // 五、输出结果 cout<<s; // 输出摆放n个等边三角形所需要的火柴棒总数量return 0; // 程序正常结束,返回值为0

完整代码如下:

#include<bits/stdc++.h> 
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知:想要摆放的等边三角形火柴棒图形的数量(n)。// 未知:需要的火柴棒总数量(s)。// 关系:每个等边三角形需要3根火柴棒,所以所需火柴棒总数s = n * 3。// 二、数据定义 int n, s; // 定义变量n存储三角形数量,s存储所需火柴棒总数// 三、数据输入 cin>>n; // 从标准输入读取需要摆放的等边三角形火柴棒图形的数量// 四、数据计算 s = n * 3; // 根据每个等边三角形需要3根火柴棒来计算所需的火柴棒总数// 五、输出结果 cout<<s; // 输出摆放n个等边三角形所需要的火柴棒总数量return 0; // 程序正常结束,返回值为0
}

问题:1417. 买文具

类型:基本运算、整数运算


题目描述:

文具店的水笔的单价是一个整数,小明从文具店买了 x 支水笔花了 y 元。请问如果你要从该文具店购买 5 支水笔需要付多少钱?

输入:

两个整数 x 和 y ,用空格隔开,分别代表小明买的水笔的支数和他付给老板的金额。

输出:

一个整数,代表如果你买 5 支水笔,应该付给老板的金额。

样例:

输入:

10 20

输出:

10

在这里插入图片描述


1.分析问题

  1. 已知:小明买的水笔的支数x和他付给老板的金额y。
  2. 未知:买 5 支水笔,应该付给老板的金额m。
  3. 关系:m=y / x * 5。

2.定义变量

    // 二、数据定义 int x, y, m; // 定义变量x存储已购水笔数量,y存储已付金额,m存储5支笔的应付金额

3.输入数据

    // 三、数据输入 cin>>x>>y; // 从标准输入读取小明已购买的水笔数量和已付金额

4.数据计算

    // 四、数据计算 m = y / x * 5; // 根据单价(y/x)计算出购买5支笔的应付金额

5.输出结果

    // 五、输出结果 cout<<m; // 输出小明购买5支笔应付的金额return 0; // 程序正常结束,返回值为0

完整代码如下:

#include<bits/stdc++.h> 
using namespace std;// 主函数入口
int main(){// 一、分析问题// 已知:小明买的水笔的支数(x)和他付给老板的金额(y)。// 未知:买 5 支水笔,应该付给老板的金额(m)。// 关系:m = y / x * 5 (即单价乘以5支笔的数量)// 二、数据定义 int x, y, m; // 定义变量x存储已购水笔数量,y存储已付金额,m存储5支笔的应付金额// 三、数据输入 cin>>x>>y; // 从标准输入读取小明已购买的水笔数量和已付金额// 四、数据计算 m = y / x * 5; // 根据单价(y/x)计算出购买5支笔的应付金额// 五、输出结果 cout<<m; // 输出小明购买5支笔应付的金额return 0; // 程序正常结束,返回值为0
}

问题:1320. 时钟旋转

类型:基本运算、整数运算


题目描述:

时钟上面的时针从 m 时走到 n 时旋转了多少度?(m≤n,且 m 和 n 都是1∼12之间的整数)。

在这里插入图片描述

输入:

2 个整数 m 和 n。

输出:

1 个整数代表时针旋转的度数。

样例:

输入:

1 4

输出:

90

在这里插入图片描述


1.分析问题

  1. 已知:2 个整数 m 和 n。
  2. 未知:时针从m时走到n时旋转了多少度?
  3. 关系:圆是360度,钟表被分成12份,因此每份30度 。

2.定义变量

  • m:起始时刻(单位:小时,假设为整点)。
  • n:结束时刻(单位:小时,假设为整点)。
  • result:时针从 m 时到 n 时旋转的角度(单位:度),待计算。
	//二、数据定义 int m,n,result; 

3.输入数据

  • 从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值。
	//三、数据输入 cin>>m>>n;

4.数据计算

  • 计算时针从 m 时到 n 时旋转的角度,即 (n - m) 小时对应的旋转角度。
  • 每小时时针旋转 30 度,因此总旋转角度为 30 度 * (n - m)。
	//四、数据计算 result=360/12*(n-m);

5.输出结果

  • 将计算得到的时针旋转角度 result 输出到标准输出。
	//五、输出结果 cout<<result;return 0;

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:2 个整数 m 和 n,分别代表起始和结束时刻(假设为整点)。// 未知:时针从 m 时走到 n 时旋转了多少度?// 关系:圆是360度,钟表被分成12份(对应12小时),因此每小时对应的旋转角度为 360 度 / 12 = 30 度// 二、数据定义// 定义整型变量:// m:起始时刻(单位:小时,假设为整点)// n:结束时刻(单位:小时,假设为整点)// result:时针从 m 时到 n 时旋转的角度(单位:度),待计算int m, n, result;// 三、数据输入// 从标准输入接收用户输入的起始时刻 m 和结束时刻 n 的值cin >> m >> n;// 四、数据计算// 计算时针从 m 时到 n 时旋转的角度,即 (n - m) 小时对应的旋转角度// 每小时时针旋转 30 度,因此总旋转角度为 30 度 * (n - m)result = 360 / 12 * (n - m);// 五、输出结果// 将计算得到的时针旋转角度 result 输出到标准输出cout << result;// 程序执行完毕,返回 0 表示正常结束return 0;
}

问题:1323. 扩建花圃问题

类型:整数运算、整数运算


题目描述:

梅山小学有一块长方形花圃(花圃的长宽都是整数),长 m 米,宽未知。
在修建校园时,花圃的长增加了 n 米,此时发现增加出来的面积有 s 平方米。
请编程计算出原来花圃的面积是多少平方米?(4.2.19)

输入:

3个整数,分别是 m、n、s。

输出:

一个整数,原来花圃的面积数。

样例:

输入:

8 3 18

输出:

48

在这里插入图片描述


1.分析问题

  1. 已知:花圃长 m 米,花圃的长增加了n米,此时发现增加出来的面积有s平方米。
  2. 未知:原来花圃的面积数a。
  3. 关系:根据增加面积,算出花圃宽度w=s/n;然后算出现在的花圃面积数 。

2.定义变量

  • 声明并定义了五个整型变量,分别表示花坛长度(m)、长度增加量(n)、新增面积(s)、原花坛宽度(w)和原花坛面积(a)。
	//二、数据定义 int m,n,s,w,a; 

3.输入数据

  • 通过cin从标准输入读取花坛长度(m)、长度增加量(n)和新增面积(s)的值。
	//三、数据输入 cin>>m>>n>>s;

4.数据计算

  • 根据给定的新增面积(s)和长度增加量(n),计算出原花坛的宽度(w),公式为 w = s / n。
  • 之后,利用原花坛宽度(w)和长度(m)计算原花坛的面积(a),公式为 a = w * m。
	//四、数据计算 w=s/n;a=w*m;

5.输出结果

  • 使用cout将计算得到的原花坛面积(a)输出到标准输出。
	//五、输出结果 cout<<a;return 0;	

完整代码如下:

#include <bits/stdc++.h>
using namespace std;int main() {// 一、分析问题// 已知:花圃长 m 米,花圃的长增加了 n 米,此时发现增加出来的面积有 s 平方米。// 未知:原来花圃的面积数 a// 关系:根据增加面积,算出花圃宽度 w = s / n;然后算出现在的花圃面积数// 二、数据定义// 定义整型变量:// m:花坛原长度(单位:米)// n:花坛长度增加量(单位:米)// s:因长度增加而新增的面积(单位:平方米)// w:花坛原宽度(单位:米),待计算// a:原花坛面积(单位:平方米),待计算int m, n, s, w, a;// 三、数据输入// 从标准输入接收用户输入的花坛原长度 m、长度增加量 n 和新增面积 s 的值cin >> m >> n >> s;// 四、数据计算// 计算原花坛宽度 w,根据题意,新增面积等于原宽度乘以长度增加量,即 s = w * n,// 变换公式得 w = s / nw = s / n;// 计算原花坛面积 a,根据题意,面积等于原长度乘以原宽度,即 a = m * wa = w * m;// 五、输出结果// 将计算得到的原花坛面积 a 输出到标准输出cout << a;// 程序执行完毕,返回 0 表示正常结束return 0;
}

问题:1462. 小明的游泳时间

类型:整数运算


题目描述:

伦敦奥运会要到了,小明在拼命练习游泳准备参加游泳比赛。
这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算),它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分。
请你帮小明计算一下,它这天一共游了多少时间呢?小明游的好辛苦呀,你可不要算错了哦。

输入:

一行内输入 4 个整数,分别表示a,b,c,d 。

输出:

一行内输出 2 个整数 e 和 f ,用空格间隔,依次表示小明这天一共游了多少小时多少分钟。其中表示分钟的整数 f应该小于 60 。

样例:

输入:

12 50 19 10

输出:

6 20

在这里插入图片描述


1.分析问题

  1. 已知:从 a 时 b 分一直游泳到当天的 c 时 d 分。
  2. 未知:一共游了多少时间呢?
  3. 关系:先将时间转换成分,计算后再换算成时分输出 。

2.定义变量

  • 定义变量:a(开始时)、b(开始分)、c(结束时)、d(结束分)、e(游泳总时数)、f(游泳总分数),均为整型。
	//二、数据定义 int a,b,c,d,e,f; 

3.输入数据

  • 从标准输入(如键盘)接收用户输入的开始时间和结束时间(时分)。
	//三、数据输入cin>>a>>b>>c>>d; 

4.数据计算

	//四、数据计算 int total_minutes = (c * 60 + d) - (a * 60 + b); // 计算游泳总分钟数e = total_minutes / 60;                          // 计算游泳总时数 e(整除)f = total_minutes % 60;                          // 计算游泳总分数 f(余数)

5.输出结果

  • 输出游泳总时数 e 和总分数 f。
	//五、输出结果 cout<<e<<" "<<f;return 0;

完整代码如下:

#include <bits/stdc++.h> // 包含标准输入输出库以及其他常用头文件
using namespace std;    // 使用 std 命名空间,简化代码int main() {           // 主函数开始// 一、分析问题// 已知:从 a 时 b 分一直游泳到当天的 c 时 d 分// 未知:一共游了多少时间呢?// 关系:先将时间转换成分,进行计算,再将结果换算成时分输出// 二、数据定义 int a, b, c, d, e, f; // 定义变量:a(开始时)、b(开始分)、c(结束时)、d(结束分)、e(游泳总时数)、f(游泳总分数),均为整型// 三、数据输入cin >> a >> b >> c >> d; // 从标准输入(如键盘)接收用户输入的开始时间和结束时间(时分)// 四、数据计算 int total_minutes = (c * 60 + d) - (a * 60 + b); // 计算游泳总分钟数e = total_minutes / 60;                          // 计算游泳总时数 e(整除)f = total_minutes % 60;                          // 计算游泳总分数 f(余数)// 五、输出结果 cout << e << " " << f; // 输出游泳总时数 e 和总分数 freturn 0;              // 主函数结束,返回值为 0 表示程序执行成功
}

三、总结

通过本次学习,你不仅巩固了C++语言的基础,还进一步拓展了对常量、标识符、整型变量的理解,更重要的是,通过解决实际问题,提升了程序设计思维和编码技能。记住,编程不仅是技术的堆砌,更是逻辑思维与问题解决的艺术。每一道题目的解决,都是向NOI奖台迈进的坚实一步。保持好奇心,勤于实践,相信不久的将来,你将在信息学的舞台上绽放光彩。继续加油,未来的编程之星!

四、感谢

如若本文对您的学习或工作有所启发和帮助,恳请您给予宝贵的支持——轻轻一点,为文章点赞;若觉得内容值得分享给更多朋友,欢迎转发扩散;若认为此篇内容具有长期参考价值,敬请收藏以便随时查阅。

每一次您的点赞、分享与收藏,都是对我持续创作和分享的热情鼓励,也是推动我不断提供更多高质量内容的动力源泉。期待我们在下一篇文章中再次相遇,共同攀登知识的高峰!

在这里插入图片描述

相关文章:

【NOI】C++程序设计入门三

文章目录 前言一、大杂烩1.导入2.常量3.标识符4.关键字5.整型补充5.1 short&#xff1a;短整型5.2 long&#xff1a;长整型5.3 long long&#xff1a;长长整型 二、例题讲解问题&#xff1a;1597. 买文具问题&#xff1a;1596. 火柴棒三角形问题问题&#xff1a;1417. 买文具问…...

Three.js投射光线实现三维物体交互

<template><div id"webgl"></div> </template><script setup> import * as THREE from three //导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入 dat.gui import { GUI } from thre…...

SSRF学习笔记

1.NAT学习 Nat&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是 一种网络通信技术主要用于将私有网络中的内部IP地址转换成公共网络中的公共IP地址&#xff0c;以实现局域网内部设备访问互联网的功能。具体来说&#xff0c;Nat有以下几个主要…...

Python——Pandas(第三讲)

文章目录 修改替换变量值对应数值的替换指定数值范围的替换 虚拟变量变换数值变量分段数据分组基于拆分进行筛选 分组汇总使用 agg 函数进行汇总引用自定义函数 长宽格式转换转换为最简格式长宽型格式的自由互转 多个数据源的合并数据的横向合并concat 命令 处理缺失值认识缺失…...

性能测试中qps 一直上不去的原因

QPS&#xff1a;Queries Per Second意思是“每秒查询率”&#xff0c;是一台服务器每秒能够相应的查询次数&#xff0c;是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 在性能测试中&#xff0c;QPS&#xff08;每秒查询率&#xff09;一直上不去可能由以下…...

学习笔记14:CNAME 记录值、TTL (Time to Live)、Redis 的 Pool 对象池、钩子函数、依赖注入

CNAME 记录值 CNAME 记录是一种DNS记录类型&#xff0c;它将一个域名映射到另一个域名。这通常用于将一个子域名指向另一个域名&#xff0c;或者将一个域名指向一个不同的顶级域。 用途&#xff1a;用于域名别名&#xff0c;负载均衡&#xff0c;或者在更换域名时保持服务的连…...

springboot集成mybatis时,dao层的mapper类需要添加@Repository注解吗?

在Spring Boot项目中&#xff0c;当你使用MyBatis作为ORM框架时&#xff0c;关于DAO层的Mapper类是否需要添加Repository注解&#xff0c;这主要取决于你的项目需求和配置。 Repository注解的作用Repository注解是Spring框架中用于声明持久层&#xff08;DAO层&#xff09;的组…...

一文总结代理:代理模式、代理服务器

概述 代理在计算机编程领域&#xff0c;是一个很通用的概念&#xff0c;包括&#xff1a;代理设计模式&#xff0c;代理服务器等。 代理类持有具体实现类的实例&#xff0c;将在代理类上的操作转化为实例上方法的调用。为某个对象提供一个代理&#xff0c;以控制对这个对象的…...

探索 Kubernetes 持久化存储之 Longhorn 初窥门径

作者&#xff1a;运维有术星主 在 Kubernetes 生态系统中&#xff0c;持久化存储扮演着至关重要的角色&#xff0c;它是支撑业务应用稳定运行的基石。对于那些选择自建 Kubernetes 集群的运维架构师而言&#xff0c;选择合适的后端持久化存储解决方案是一项至关重要的选型决策。…...

全国区块链职业技能大赛样题第9套智能合约+数据库表设计

后端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746050 前端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746216 智能合约+数据库表设计:https://blog.csdn.net/Qhx20040819/article/details/140746646 nice.sql /* Navicat MySQ…...

常见OVS网桥及其链接接口详解

目录 引言OVS简介常见OVS网桥 QBR&#xff08;qbr&#xff09;PLY网桥br-intbr-tunbr-routerbrcps常见网桥链接接口 QVOQVIQVMPatch网桥和接口的工作原理应用场景 虚拟化环境数据中心网络云计算平台 1. 引言 开放虚拟交换机&#xff08;Open vSwitch&#xff0c;简称OVS&…...

创建最最最纯净 Windows 11/10 系统镜像!| 全网独一份

前期准备工作 1.配置系统应答文件&#xff1a;【点击前往】 2.系统镜像编辑器&#xff1a; 【点击下载】 3.Windows 系统镜像官方下载&#xff1a; 【Windows 11】、【Windows 10】【官方密钥】 4.翻译工具 【GitHub】 5.详细的设置教程 5.1先打开配置系统应答文件&#…...

带你学会Git必会操作

文章目录 带你学会Git必会操作1Git的安装2.Git基本操作2.1本地仓库的创建2.2配置本地仓库 3.认识一些Git的基本概念3.1操作流程&#xff1a; 4.一些使用场景4.1添加文件场景一4.2查看git文件4.3修改文件4.4Git版本回退4.5git撤销修改 5.分支管理5.1查看分支5.2创建本地分支5.3切…...

clickhouse处理readonly报错

1&#xff0c;clickhouse执行 SYSTEM RESTORE REPLICA db_com.dwd_com_t_judge_result_local; SYSTEM RESTORE REPLICA db_com.dwd_com_t_judge_result_local Query id: 70669be0-eef8-41da-b761-4980ce48ece2 0 rows in set. Elapsed: 0.001 sec. Received exception fro…...

使用git命令行的方式,将本地项目上传到远程仓库

在国内的开发环境中&#xff0c;git的使用是必不可少的。Git 是一款分布式版本控制系统&#xff0c;用于有效管理和追踪文件的变更历史及协作开发。本片文章就来介绍一下怎样使用git命令行的方式&#xff0c;将本地项目上传到远程仓库&#xff0c;虽然现在的IDE中基本都配置了g…...

jetbrains InterlliJ IDEA 2024.1 版本最新特性一览: Java 相关内容

简简单单 Online zuozuo:欢迎商业合作 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo :联系我们:VX :tja6288 / EMAIL: 347969164@qq.com 文章目录 jetbrains InterlliJ …...

百日筑基第三十四天-JAVA中的强/软/弱/虚引用

百日筑基第三十四天-JAVA中的强/软/弱/虚引用 Java对象的引用被划分为4种级别&#xff0c;分别为强引用、软引用、弱引用以及虚引用。帮助程序更加灵活地控制对象的生命周期和JVM进行垃圾回收。 强引用 强引用是最普遍的引用&#xff0c;一般把一个对象赋给一个引用变量&…...

C语言100基础拔高题(3)

1.利用递归函数调用方式&#xff0c;将所输入的5个字符&#xff0c;以相反顺序打印出来。 解题思路&#xff1a;通过反复调用一个打印最后一个元素的函数&#xff0c;来实现此功能。源代码如下: #include<stdio.h> void oposize(char str[], int len); int main() {//利…...

AV1技术学习:Constrained Directional Enhancement Filter

CDEF允许编解码器沿某些(可能是倾斜的)方向应用非线性消阶滤波器。它以88为单位进行。如下图所示&#xff0c;通过旋转和反射所示的三个模板来定义八个预设方向。 Templates of preset directions and their associated directions. The templates correspond to directions of…...

C++的STL简介(一)

目录 1.什么是STL 2.STL的版本 3.STL的六大组件 4.string类 4.1为什么学习string类&#xff1f; 4.2string常见接口 4.2.1默认构造 ​编辑 4.2.2析构函数 Element access: 4.2.3 [] 4.2.4迭代器 ​编辑 auto 4.2.4.1 begin和end 4.2.4.2.regin和rend Capacity: 4.2.5…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...