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

C++入门(1)

一、第一个C++程序

#include <iostream>
using namespace std;
int main()
{cout << "hello world" << endl; return 0;
}
1.  main函数
main 函数是程序的入口,C++ 的程序不管有多少行代码,都是从 main 函数开始执行的, main
数也被叫做:主函数。 main 前面的 int 表示 main 函数执行结束的时候返回⼀个整型类型的值,而在 main 函数的最后写 return 0; 正好前后呼应。要注意的是,main函数有且仅有一个。 一个项目中可以有多个 .cpp 文 件,但是只能有一个 main 函数(因为程序的入口只能有一个)。
2.  字符串
在 C 语言中,使用单引号括起来一个字符,表示字符字面值,比如: '1' , 'a' ,使用双引号括起来
多个字符表示一个字符串,比如: "abcdef" , "hello world" ,字符串中可以有⼀个或者多个字符,也可以没有任何字符, "" 表示空字符串。上面代码中的 "hello world!" 就是一个字符串。这类字符和字符串表示的方式在C++也完全支持的。在C++的 STL 中又引入了 string 来表示字符串,功能更加强大,C 语言不支持,后期会详细介绍。
3.  头文件
前面的代码中,写的 #include <iostream> ,就是在包含头文件,头文件的名字叫:iostream,使用 #include <> 的形式进行包含。 iostream文 件中的 io 指的是输入进入程序的信息,简单理解就是可以给程序输入数据)和输出(从程序中输出的信息,简单理解就是程序会打印数据在屏幕上)。
C++ 程序中要完成输⼊和输出的操作会涉及到 iostream 文 件中的多个定义,所以就要包含这个
头文件的。比如:代码中的 cout 是输出流对象,就是用来完成数据输出的,就需要包含头文件。
注意:
在C语言中头文件的扩展名是 .h ,但是C++中的用法发生了一些变化,对老式C的头文件保留了扩展名 .h ,但是C++自己的文件没有扩展名了。也有一些C的头文件被转换成C++头文件,这些文件名被重命名,去掉了.h扩展名,并在文件名的前面加上了前缀c(表示来自C语言);例如:C语言中有关数学的头文件名字是 math.h ,在C++中就是 cmath 。当然还得注意,有时这种头文件的C语言版本和C++版本相同,而有时候,新版本做了一些修改。
4.  cin 和 cout 初识
cout << "hello world!" << endl; 这句代码在上面的程序中是最重要的代码,其他所有的代码都是为了编写这句代码。代码中的 cout 是标准输出流对象(针对控制台,也就是屏幕),其实还有标准输入流对象(针对的是键盘) cin 。cout 是告诉程序把后面双引号中的内容打印到标准输出设备(屏幕)上,双引号中的内容可以替换的。 endl 是 C++ 中⼀个特殊的操作符,效果是换行和刷新缓冲区,使用时必须包含在 iostream 头文件。<< 是流插入运算符,和 cout 配合使用, >> 是流提取运算符,和 cin 配合使用。
#include <iostream>
using namespace std;
int main()
{int a,b;cin >> a >> b;cout << b << endl;return 0;
}

在上面的代码中我们实现的是输入两个数然后输出第二个数,可以分两次读入,也可以一次读入,只有获取到第二个输入值才能输出结果。我们能够知道cin 是支持连续读入几个数值的 ,cout 也是支持连续输出几个数值的

5.  名字空间
using namespace std; 这句代码的意思是:使用名字空间 std (名字空间也叫命名空间)。在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称如果都存在于全局作用域中,可能会导致很多冲突。使用以名字空间的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染, namespace 关键字的出现就是针对这种问题的。std 是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使用标准库中的内容时,就需要加上: using namespace std ;当有了这句代码的时候,表示名字空间 std 中信息都是可见和可用的,比如: cin cout endl 等。 名字空间也是根据需要自己可以定义的,这里就不加详细介绍,可以自行拓展学习。 当然直接使用 using namespace std; 是⼀种简单粗暴的做法,直接这样使用,就意味着后续在 std 这个名字空间中的各种定义都可以直接使用,但是我们往往只是使用部分。所以名字空间其实也 可以这样使用:
#include <iostream>
//using namespace std;
int main()
{std::cout << "hello world" << std::endl; return 0;
}
代码中的 std::cout 的意思就是使用  std 名字空间中的 cout
采用  std::cout 这种写法,如果频繁使用,在算法竞赛中比较麻烦,耽搁时间。但是在企业中做软件开发基本上都这样写的,这样写更好的避免名字冲突的问题,后期在慢慢琢磨。
6.  注释
在C++里主要有两种形式:单行注释 // 和多行注释 /* */
注释是放在代码中对代码进行解释的文字,无需编译。注释是给程序员自己看的,编译器会忽略注释,基于注释是被编译器忽略的这个特点,在代码中有些代码不再需要的时候也会使用注释的方式屏蔽。
在VS环境中注释和取消注释的快捷键: Ctrl + K + C Ctrl + K + U
在DevC++中注释和取消注释的快捷键: Ctrl + /
单行注释
#include<stdio.h>
int main()
{//printf("%d", 2); 这是单行注释return 0;
}

多行注释

#include<stdio.h>
/* 这是多行注释
int main()
{printf("%d", 2);return 0;
}*/

二、数据类型

C++中提供了丰富的数据类型来描述生活中的各种数据。比如:可以使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。所谓 “类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么去操作数据。
1. 字符型
char  //character的缩写 
在键盘上可以敲出各种字符,如: a q @ # 等,这些符号都被称为字符,字符是用单引号括起来的,如: 'a' 'b' '@' 。为了能说明这些字符,给他们抽象出⼀种类型,就是字符型,C
语言中就是 char
2.ASCII编码
我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样的二进制存储的呢?如果我们每个人中间给这些字符中的每个字符编⼀个二进制序列,这个叫做编码,为了不造成混乱,美国国家标准学会(ANSI)出台了一个标准 ASCII 编码,C语言中的字符就遵循了 ASCII 编码的方式。
下面就是一张ASCII码表。
当然我们不需要将这张表全部记下来, 使用时查看就可以,不过我们最好能掌握几组特殊的数 据:
(1) 字符 A~Z 的ASCII码值从 65~90
(2)字符 a~z 的ASCII码值从 97~122
(3)对应的大小写字符(a和A)的ASCII码值的差值是 32
(4)数字字符 0~9 的ASCII码值从 48~57
(5) 换行  \n 的ASCII值是: 10
(6) ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察
#include <iostream>
using namespace std;
int main()
{char m='A';cout << m << endl;char n=65;cout << n << endl;return 0;
}

在上面的代码中虽然n为65,但是打印出来和m一样为'A'。这是因为在定义另一个字符变量 n时,用ASCII码值65初始化它。在ASCII编码中,65对应于大写字母 'A'。

3.整型

整型类型是对所有整数的抽象,为了能对整数形成统一的类型标识,就有整型;在 C 和 C++ 中整型被分为四大类: short int long long long 。short,long,long long后的int可以省略。
#include <iostream>
using namespace std;
int main()
{short int a;//短整型 int b;//整型 long int c;//长整型 long long int d;//更长的整型 return 0;
}

4.浮点型

浮点型式对所有小数的抽象,为了能对小数进行统一的类型标识,就有了浮点型。浮点型有三种:

#include <iostream>
using namespace std;
int main()
{float a;//单精度浮点型 double b;//双精度浮点型 long double c;//更长的双精度浮点型 return 0;
}
在C/C++中小数的书写形式:
#include <iostream>
using namespace std;
int main()
{3.14; //编译器会默认识别为double类型 3.14f; //编译器会默认识别为float类型 1e5; //这种写法是科学计数法的形式,意思是1.0*10^51e5+10; //1*100000+10 == 1000101.23e5+10; //1.23*100000+10 = 123010return 0;
}

5.布尔类型

C++有⼀种类型叫: bool (布尔类型),布尔类型的变量的值可以是 true false ,这种类型类型的变量专门用来表示真或假的。当然在C和C++中,0表示假,非0表示真。
#include <iostream>
using namespace std;
int main()
{bool flag=true;if(flag){cout << "I like C++!" << endl;}return 0;
}
#include <iostream>
using namespace std;
int main()
{int flag=1;if(flag){cout << "I like C++!" << endl;}return 0;
}

当if语句()中的值为真,就会执行。在第一段代码中flag为true,也就是为真;在第二段代码中flag为1,非0也表示真。所以这两个代码都可以打印出I like C++!这段话。

6.signed 与 unsigned

signed unsigned 关键字修饰字符型和整型类型的。
signed 关键字,表示一个类型带有正负号,包含负值;比如:温度、银行存款。
unsigned 关键字,表示该类型不带有正负号,只能表示零和正整数,比如:年龄。
有了 signed unsigned 的修饰,字符和整型类型其实更加丰富,可以有以下这些:
#include <iostream>
using namespace std;
int main()
{char m1;//字符型signed char m2;//有符号的字符类型unsigned char m3;//无符号的字符类型short int m4;//短整型signed short int m5;//有符号的短整型unsigned short int m6;//无符号的短整型int m7;//整型signed int m8;//有符号的整型unsigned int m9;//无符号的整型long int m10;//长整型signed long int m11;//有符号的长整型unsigned long int m12;//无符号的长整型long long int m13;//更长的整型signed long long int m14;//有符号的更长的整型unsigned long long int m15;//无符号的更长的整型return 0;
}
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。由于这是默认情况,关键字 signed ⼀般都省略不写,但写了也没事。int 类型也可以不带正负号,只表⽰⾮负整数。这时就必须使用关键字 unsigned 声明变量。
变量声明为 unsigned 的好处是,同样长度的内存能够表示的最大整数值,增大了⼀倍。比如,16位的 signed short int 的取值范围是: -32768~32767 ,最大是 32767 ;而unsigned short int 的取值范围是: 0~65535 ,最大值增大到了 65535 。32位的 signed int 的取值范围可以参看 climits 中给出的定义。下面的定义是Dev-C++环境中, climits 中相关定义,其实如果仔细看 climits 中也是包含的limits.h 。
unsigned int 里面 int 可以省略,所以上面的变量声明也可以写成下面这样。
#include <iostream>
using namespace std;
int main()
{unsigned a; return 0;
}
注意, char 类型到底是 signed char 还是 unsigned char ,由编译器决定。大部分的编译器上 char 就是 signed char 。这就是说, char 不等同于 signed char ;它有可能是 signed char ,也有可能是unsigned char 。这⼀点与 int 不同, int 就是等同于 signed int
7.数据类型长度
每⼀种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,变量长度的不同,存储的数据范围就有所差异。
那我们先来介绍一个关键字sizeof, 也是操作符,专门是用来计算特定数据类型的长度的,单位是字节。 sizeof 操作符的操作数可以是类型,也可是变量名或者表达式, sizeof 的操作数如果不是类
型,是表达式的时候,可以省略掉后边的括号的。
sizeof( 类型 )
sizeof 表达式
sizeof 的计算结果是 size_t 类型的, size_t 指的是无符号整数(该类型包含了所有可能,unsigned int , unsigned long unsigned long long 等类型,具体是取决于编译器的)。sizeof计算操作数所占内存的大小,在下面的代码中,因为a是整型变量,所以所占内存就是整型类型所需的四个字节。
#include <iostream>
using namespace std;
int main()
{int a=10;cout << sizeof(a) <<endl;//4cout << sizeof a <<endl;//4cout << sizeof(int) <<endl;//4return 0;
}

该如何理解这些数据类型的长度呢?其实我们使用这些数据类型可以向内存申请空间(也就是创建变量),不同的数据类型⼀次性申请的空间大小是有差异的。你可以这样理解:
前面的知识已经让我们了解到了很多的数据类型,不同的数据类型所创建的变量的长度是有差异的,这个长度差异又决定了这种变量中能存储的值的大小。其实每⼀种数据类型有自己的取值范围,也就是存储的数值的最大值和最小值的区间。不同数据类型的取值范围我们可以在下面两个文件中查找到。
limits.h 文 件中说明了整型类型的取值范围。(C++中头文件的名字是 <climits>
float.h 这个头文件中说明浮点型类型的取值范围。(C++中头文件的名字是 <cfloat>
这里选取一个进行说明,我们知道int所占内存为四个字节,也就是32个比特,每个比特位存着0或1,所以int的取值范围为2^32,平分正负数就是下面的结果,而unsigned int因为不包括负数,所以是从0开始。
我们对这些类型的取值范围还得大概知道取值范围的数量级,像 int 类型取值大概是:-2.1*10^9~2.1*10^9,这里就是10^9这样的数量级。
8.typedef
在C++中有⼀个关键字是和类型有关的,是用来给类型重命名的。当有一个类型比较复杂的时候,可以简化类型。 typedef 在竞赛中经常使用,可以提升编码速度。typedef使用的基本语法形式:
typedef 旧类型名 新类型名;
typedef unsigned int uint;
//将unsigned int重命名为uint
上面代码的意思是将 unsigned int 类型重命名为 uint ,使用 uint 创建的变量和使用unsigned int 是⼀样的。
uint num1 = 0;//等价于 unsigned int num1 = 0;

我们再来看一段输入ASCII码输出相应字符的代码。

#include <iostream>
using namespace std;
int main()
{int n = 0;cin >> n;char ch = n;cout << ch << endl;return 0;
}
输入⼀个整数,即字符的 ASCII 码,那么就必须使用⼀个int类型的变量来输入数值。因为C++的 cin 是根据变量的类型在缓冲区读取数据的。换成 char 类型是不行的。比如我们输入65,如果直接使用char类型来接受,cin根据char类型读取一个字符,也就是'6'。

相关文章:

C++入门(1)

一、第一个C程序 #include <iostream> using namespace std; int main() {cout << "hello world" << endl; return 0; } 1. main函数 main 函数是程序的入口&#xff0c;C 的程序不管有多少行代码&#xff0c;都是从 main 函数开始执行的&am…...

在Linux的嵌入式开发中,如何确定要操作的帧缓冲设备是第几个实例?即是fb0还是fb1还是fb2...

方法汇总 在实际编写程序时&#xff0c;要确定操作的帧缓冲设备&#xff08;如 /dev/fb0、/dev/fb1 等&#xff09;&#xff0c;通常需要结合系统环境和硬件配置。以下是一些常见的方法&#xff0c;帮助你确定需要打开的帧缓冲设备实例&#xff1a; 1. 检查系统设备文件 查看…...

JS 中请求队列与锁的巧妙结合

一、引言 在 JavaScript 开发中&#xff0c;尤其是在涉及到异步操作和对共享资源的并发访问时&#xff0c;有效地控制请求顺序和资源访问权限至关重要。例如&#xff0c;在多个网络请求同时针对一个有限制访问频率的 API 或者多个异步任务竞争同一个文件写入权限的场景下&#…...

注意力机制+时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测

注意力机制时空特征融合&#xff01;组合模型集成学习预测&#xff01;LSTM-Attention-Adaboost多变量时序预测 目录 注意力机制时空特征融合&#xff01;组合模型集成学习预测&#xff01;LSTM-Attention-Adaboost多变量时序预测效果一览基本介绍程序设计参考资料 效果一览 基…...

Prefix Decoder /Causal Decoder/Encoder-Decoder的区别

Prefix Decoder 定义&#xff1a;Prefix Decoder&#xff0c;也称为非因果解码器&#xff0c;属于Decoder only结构。输入部分使用双向注意力&#xff0c;输出部分使用单向注意力。在生成新的输出时&#xff0c;会考虑到所有之前生成的输出。 特点&#xff1a;Prefix Decoder在…...

《智能体开发实战(高阶)》四、系统化的日志周报智能体开发计划

智能体扩展与完善规划 为了将前几个章节的智能体逐步扩展为支持整个公司团队使用的高效工具,以下是分阶段的完善与扩写规划。每个阶段旨在提升功能覆盖范围、处理能力和用户体验,并为企业提供实际价值。 阶段一:基础功能完善 目标:巩固现有功能,提升健壮性和适用性。 支…...

多线程编程杂谈(上)

问题 线程执行的过程中可以强制退出吗&#xff1f; 主动退出&#xff1f;被动退出&#xff1f; 问题抽象示例 需要解决的问题 g_run 全局变量需要保护吗&#xff1f; 如何编码使得线程中每行代码的执行可被 g_run 控制&#xff1f; 线程代码在被 g_run 控制并 "强制退…...

二五(Vue2-01)、创建实例、插值表达式、响应式、Vue指令、

1. Vue 概念及创建实例 <body><!-- 创建Vue实例&#xff0c;初始化渲染1. 准备容器 (Vue所管理的范围)2. 引包 (开发版本包 / 生产版本包) 官网3. 创建实例4. 添加配置项 > 完成渲染 --><div id"app"><h1>{{msg}}</h1><a href&…...

P8772 求和 P8716 回文日期

文章目录 [蓝桥杯 2022 省 A] 求和[蓝桥杯 2020 省 AB2] 回文日期 [蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1​,a2​,⋯,an​, 求它们两两相乘再相加的和&#xff0c;即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a…...

Burp Suite(2)2024.1.1Burp Suite专业版激活(保姆级教程)

声明&#xff1a; 本文所使用的专业版BP在我的博客资源里面&#xff0c;需要的师傅可以自行下载。 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内…...

基于注意力的几何感知的深度学习对接模型 GAABind - 评测

GAABind 作者是苏州大学的生物基础与医学院, 期刊是 Briefings in Bioinformatics, 2024, 25(1), 1–14。GAABind 是一个基于注意力的几何感知蛋白-小分子结合模式与亲和力预测模型,可以捕捉小分子和蛋白的几何、拓扑结构特征以及相互作用。使用 PDBBind2020 和 CASF2016 作…...

Python中的优化函数2:cvxpy包

文章目录 介绍使用步骤示例1示例2官方文档 介绍 它是一个基于 Python 的凸优化建模工具&#xff0c;专门用于定义和求解 凸优化问题&#xff08;Convex Optimization Problems&#xff09;。CVXPY 提供了一种直观的方式来表达优化问题&#xff0c;并通过高效的求解器来解决这些…...

【Linux】结构化命令

结构化命令structured command&#xff1a;允许脚本根据条件跳过部分命令&#xff0c;改变执行流程。 1、if-then语句 格式1&#xff1a; if command then commands fi 格式2&#xff1a; if command; then commands fi 运行if之后的command命令&#xff0c;如果它的退出状态码…...

3-机器人视觉-机器人抓取与操作

文章目录 3机器人视觉目录 1. 传感器和标定摄像头模型Intrinsic MatrixExtrinsic Matrix 标定内参标定手眼标定和外参标定 力传感器&其它传感器其它传感器 2. 神经网络和图像处理2D特征处理常见架构 训练流程推理流程部署流程2D 图像任务3D Point Cloud FeaturePointNet Ap…...

LINUX——shell编程

Shell 简介 Shell 是一个 C 语言编写的脚本语言&#xff0c;它是用户与 Linux 的桥梁&#xff0c;用户输入命令交给 Shell 处理&#xff0c; Shell 将相应的操作传递给内核&#xff08;Kernel&#xff09;&#xff0c;内核把处理的结果输出给用户。 下面是流程示意图&#xff…...

12.11函数 结构体 多文件编译

1.脑图 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学生信息函数 显示 4> 封…...

【go语言】reflect包与类型推断

reflect 包的核心概念 Go 中的反射涉及两个核心概念&#xff1a; Type&#xff1a;表示一个类型的结构体&#xff0c;reflect.Type 是类型的描述。Value&#xff1a;表示一个值的结构体&#xff0c;reflect.Value 是一个具体值的包装。 反射让我们能够动态地访问对象的类型和…...

docker启动一个helloworld(公司内网服务器)

这里写目录标题 容易遇到的问题&#xff1a;1、docker连接问题 我来介绍几种启动 Docker Hello World 的方法&#xff1a; 最简单的方式&#xff1a; docker run hello-world这会自动下载并运行官方的 hello-world 镜像。 使用 Nginx 作为 Hello World&#xff1a; docker…...

【瑞萨RA0E1开发板评测报告】IIC OLED 测试

【瑞萨RA0E1开发板评测报告】IIC OLED 测试 基于前面关于瑞萨 e studio 开发软件的使用&#xff0c;以及工程测试基础&#xff0c;本文进一步探索实现硬件 IIC OLED 的文字和图片显示。 1 背景 简单介绍 IIC 通信协议、OLED 显示原理、SS1306 驱动 IC 等。 IIC 通信协议 I…...

全球叉车市场 2023 - 2032 年发展趋势:自动化、电商与电动叉车的崛起

全球叉车市场到2032年将达到955.1亿美元&#xff0c;年复合增长率为7.49% | Astute Analytica 全球叉车市场正迎来显著增长&#xff0c;市场估值预计将从2023年的498.6亿美元增长至2032年的955.1亿美元&#xff0c;预测期内年复合增长率&#xff08;CAGR&#xff09;为7.49%。这…...

Kafka系列教程 - Kafka 生产者 -2

1. 生产者简介 不管是把 Kafka 作为消息队列系统、还是数据存储平台&#xff0c;总是需要一个可以向 Kafka 写入数据的生产者和一个可以从 Kafka 读取数据的消费者&#xff0c;或者是一个兼具两种角色的应用程序。 使用 Kafka 的场景很多&#xff0c;诉求也各有不同&#xff…...

【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p38564 本年度&#xff0c;国家及地方政府持续发力&#xff0c;推出诸多政策组合拳&#xff0c;全力推动汽车产业向更高质量转型升级&#xff0c;积极鼓励消费升级&#xff0c;并大力推行以旧换新等惠民生、促发展举措。尤为引人注目…...

将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档

阅读中国古籍电子书的时候&#xff0c;往往有很多注释。在正文和注释之间来回滚动页面是一件挺麻烦的事&#xff0c;比较方便的做法是将它编辑成通过点击注释引用即将注释弹出显示在引用所在位置的HTML文档&#xff0c;然后利用HTML文档制作成PDF或者epub文件&#xff0c;就比较…...

【Android开发】安装Android Studio(2023.1.1)

下载安装包 Android Studio2023.1.1百度云盘下载&#xff0c;提取码&#xff1a;6666https://pan.baidu.com/s/1vNJezi7aDOP0poPADcBZZg?pwd6666 安装Android Studio 2023.1.1 双击下载好的安装包 弹出界面点击下一步 继续点击【Next】 更改安装路径后继续点击【Next】 点…...

SQLite Truncate Table

SQLite Truncate Table SQLite 是一种轻量级的数据库管理系统&#xff0c;广泛用于各种应用程序中。在数据库管理中&#xff0c;有时候需要快速删除表中的所有数据&#xff0c;这时就可以使用 TRUNCATE TABLE 命令。然而&#xff0c;SQLite 与其他数据库管理系统&#xff08;如…...

港科夜闻 | 香港科大与荷兰代尔夫特理工大学(TU Delft)建立合作伙伴关系,推动艺术科技教育与研究...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大与荷兰代尔夫特理工大学(TU Delft)建立合作伙伴关系&#xff0c;推动艺术科技教育与研究。2024年12月6日&#xff0c;合作伙伴计划正式启动&#xff0c;双方期望透过合作加强艺术科技知识交流&#xff0c;借此推…...

谈一谈大数据流式处理,以Spark Streaming为例详细论述

Spark Streaming是构建在Spark上的实时流计算框架&#xff0c;可以进行实时流数据处理。Spark是一个类似于MapReduce的分布式计算框架&#xff0c;其核心是弹性分布式数据集&#xff0c;可以在快速在内存中对数据集进行多次迭代&#xff0c;以支持复杂的数据挖掘算法和图形计算…...

RabbitMQ实现消息发送接收——实战篇(路由模式)

本篇博文将带领大家一起学习rabbitMQ如何进行消息发送接收&#xff0c;我也是在写项目的时候边学边写&#xff0c;有不足的地方希望在评论区留下你的建议&#xff0c;我们一起讨论学习呀~ 需求背景 先说一下我的项目需求背景&#xff0c;社区之间可以进行物资借用&#xff0c…...

Docker Desktop占用空间问题解决

Windows安装Docker Desktop&#xff0c;没过多久就会发现C盘空间满了&#xff0c;很大可能是Docker Desktop的文件占用了空间&#xff0c;可以通过以下步骤解决&#xff1a; 步骤一&#xff1a;执行清理命令 docker system prune清理磁盘&#xff0c;删除关闭的容器、无用的数…...

系统性能优化

一、概述 性能优化的目标&#xff1a;是提高系统或应用程序的响应时间、吞吐量、cpu、内存、磁盘IO、网络、流量、JVM、Tomcat、DB等方面的性能指标。 性能优化需要有一些技巧&#xff1a;对于整个产品或项目而言&#xff0c;比如可以从前端优化、后端优化、架构优化、高并发…...

golang操作sqlite3加速本地结构化数据查询

目录 摘要Sqlite3SQLite 命令SQLite 语法SQLite 数据类型列亲和类型——优先选择机制 SQLite 创建数据库SQLite 附加数据库SQLite 分离数据库 SQLite 创建表SQLite 删除表 SQLite Insert 语句SQLite Select 语句SQLite 运算符SQLite 算术运算符SQLite 比较运算符SQLite 逻辑运算…...

【NebulaGraph】mac通过Docker安装以及官方查询示例、以及索引详解还有数据构建案例(五)

【NebulaGraph】mac通过Docker安装以及官方查询示例 1. Docker安装NebulaGraph2. 官方查询示例3. Nebula Graph 的 Java 数据解析实践与指导4. 从零到一&#xff1a;如何构建一个企业股权图谱系统&#xff1f;5. Nebula Graph 索引详解6. nGQL 执行计划详解与调优7. 图数据库的…...

【一本通】家庭作业(贪心算法)

【一本通】家庭作业 C语言代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 老师在开学第一天就把所有作业都布置了&#xff0c;每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业…...

Kylin麒麟操作系统 | 网络链路聚合配置(team和bond)

目录 一、理论储备1. 链路聚合 二、任务实施1. team模式2. bond模式 一、理论储备 1. 链路聚合 链路聚合是指将多个物理端口捆绑在一起&#xff0c;形成一个逻辑端口&#xff0c;以实现出/入流量在各成员端口中的负载分担。链路聚合在增加链路带宽、实现链路传输弹性和冗余等…...

2024年软件测试面试题大全【含答案】

一、面试基础题 简述测试流程: 1、阅读相关技术文档&#xff08;如产品PRD、UI设计、产品流程图等&#xff09;。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例&#xff08;等价类划分法、边界值分析法等&#xff09;。 5、用例评审(…...

Stable Diffusion 提示词语法

1.提示词基础 1.提示词之间用英文逗号,分隔 2.提示词之间是可以换行的 3.权重默认为1,越靠前权重越高 4.数量控制在75个单位以内 2.提示词各种符号的意义 2.1 ()、[]、{}符号 权重值()小括号[]中括号{}大括号默认1111层()1.1[]0.9{}1.052层(()) 1.121.21[[]]0.920.81{{}}1.…...

Y20030004基于asp.net+Sql的环保网站的设计与实现(附源码 调试 文档)

环保网站的设计与实现 1.摘要要2. 系统功能3.功能结构图4.界面展示5.源码获取 1.摘要要 近几年国家对于环境管理是高度重视&#xff0c;尤其是对于环境生态的破坏与环境污染&#xff0c;已经严重影响到人类的生存和发展。为了使生态环境能够得到保护和改善&#xff0c;持续发展…...

OpenCV的简单练习

1、读取一张彩色图像并将其转换为灰度图。 import matplotlib.pyplot as pltimg plt.imread("./flower.png") # 灰度化 img_gray img[:,:,0]*0.299 img[:,:,1]*0.587 img[:,:,2]*0.114plt.subplot(121) plt.imshow(img) plt.subplot(122) plt.imshow(img_gray,c…...

VS2019中无法跳转定义_其中之一情况

我习惯了使用VS2019看stm的代码&#xff1b; 遇到的问题&#xff0c;在导入代码后&#xff0c;发现有些函数调用不能跳转到定义&#xff1b; 问题描述步骤 1、导入代码 2、跳转&#xff0c;无法跳转 1、中文路径 2、删除.vs文件 和网上查的都没办法解决 最后发现是VS不支持 …...

虚幻5描边轮廓材质

很多游戏内都有这种描边效果&#xff0c;挺实用也挺好看的&#xff0c;简单复刻一下 效果演示&#xff1a; Linethickness可以控制轮廓线条的粗细 这样连完&#xff0c;然后放到网格体细节的覆层材质上即可 可以自己更改粗细大小和颜色...

【C语言】多线程服务器

多线程服务器 多线程服务器步骤代码 多线程服务器 步骤 主线程创建子线程&#xff0c;用子线程和客户端通信。 步骤&#xff1a; 1.使用socket函数&#xff0c;获取一个socket文件描述符 2.使用setsockopt端口复用 3.使用bind函数允许客户端的哪些ip可以访问服务器 4.使用lis…...

跨平台轻量级RTSP技术设计和使用场景探讨

设计背景 跨平台内网超低延迟直播的创新引擎 为满足安防视频监控、教育培训、工业生产、医疗健康、智能物联网等内网超低延迟需求&#xff0c;避免让用户配置单独的服务器&#xff0c;大牛直播SDK在推送端发布了跨平台&#xff08;Windows|Linux&#xff08;含x86_64|aarch64…...

分解质因数

题目描述 给定 n个正整数a&#xff0c;将每个数分解质因数&#xff0c;并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数 n。 接下来 n行&#xff0c;每行包含一个正整数 a。 输出格式 对于每个正整数 aiai&#xff0c;按照从小到大的顺…...

wordpress建站--如何用Let‘s Encrypt给网站添加免费ssl证书,支持https访问

本文首发网站&#xff1a;https://www.click234.com 默认情况下我们的网站是http访问&#xff0c;为了增加访问安全性&#xff0c;我们需要添加ssl证书&#xff0c;支持采用https方式访问&#xff0c;今天我们来看下怎么创建免费的ssl证书--Lets Encrypt 使用 Certbot 自动化工…...

web实操7——ServletContext

概念 和服务器通信 功能 解释说明&#xff1a; mime&#xff1a;互联网中一种文件的类型&#xff0c;可以用servletContext对象来获取。 域对象&#xff1a;用来共享数据&#xff0c;里面有一些get,set,removeAttribute,只要搞清楚ServletContext对象的域的范围是什么 如何…...

Android中bindService和startService启动服务有何区别

Android中bindService和startService启动服务有何区别 bindService 和 startService 是 Android 中两种用于与 Service 交互的方式&#xff0c;它们的区别主要在于 生命周期管理 和 使用场景。以下是详细对比&#xff1a; 1. bindService方式 bindService 是一种绑定方式&am…...

Jupyter Notebook 切换虚拟环境

方法 切换到需要添加到Jupyter Notebook中的虚拟环境&#xff0c;执行&#xff1a; python -m ipykernel install --name Jupyter Notebook中显示的虚拟环境名称如果遇到 [Errno 13] Permission denied: /usr/local/share/jupyter类似的权限问题&#xff0c;可能是没有对应的…...

短波红外相机

短波红外相机搭载采用 SenSWIR 技术的 Sony 高灵敏度传感器&#xff0c;能捕获到400nm~1700nm范围的可见光-短波红外宽波段图像信息&#xff0c;该相机可替代传统的“可见光相机短波红外相机”双相机检测方案&#xff0c;降低系统成本、提高处理速度、扩大检测范围&#xff0c;…...

余弦相似度Cosine Sim

what 余弦相似度是一种用于度量向量相似性的metric。 c o s θ A . B ∣ A ∣ . ∣ B ∣ cos\theta \frac{A.B}{|A|.|B|} cosθ∣A∣.∣B∣A.B​ A.B&#xff1a;向量的内积|A|&#xff1a;向量的模长 c o s θ cos\theta cosθ&#xff1a;的范围$ [ -1 , 1 ] $ why 余弦…...

【从零开始的LeetCode-算法】1338. 数组大小减半

给你一个整数数组 arr。你可以从中选出一个整数集合&#xff0c;并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1&#xff1a; 输入&#xff1a;arr [3,3,3,3,5,5,5,2,2,7] 输出&#xff1a;2 解释&#xff1a;选择 {3,7…...