C++学习——认识和与C的区别
目录
前言
一、什么是C++
二、C++关键字
三、与C语言不同的地方
3.1头文件
四、命名空间
4.1命名空间的概念写法
4.2命名空间的访问
4.3命名空间的嵌套
4.4命名空间在实际中的几种写法
五、输入输出
5.1cout
5.2endl
5.3cin
总结
前言
开启新的篇章,这里进行对C++的学习,本篇文章知识简单介绍一下C++,一点知识,以及和C的区别。
一、什么是C++
我们之前学过C语言,知道C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂一些的问题,需要高度的抽象和建模的时候,C语言不合适。所以C++就出现了。
C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
C++可见也非常的重要。经过了多年的修改和规定,语言一直在发展。
这里可以点击进去看最新的编程语言排名:编程语言排名 - HelloGitHub
这里是2025年1月最新的榜单,可见用的还是很多的。
二、C++关键字
C++共计63个关键字,C语言共有32个关键字。
asm | do | if | return | try | continue |
auto | double | inline | short | typedef | for |
bool | dynamic_cast | int | signed | typeid | public |
break | else | long | sizeof | typename | throw |
case | enum | mutable | static | union | wchar_t |
catch | explicit | namespace | static_cast | unsigned | default |
char | export | new | struct | using | friend |
class | extern | operator | switch | virtual | register |
const | false | private | template | void | true |
const_cast | float | protected | this | volatile | while |
delete | goto | reinterpret_cast |
这些关键字我们可以看看熟悉熟悉,可以看到大多数我们在学C的时候看见过。所以C++与C语言完全兼容,C语言的绝大部分内容可以直接用于C++的程序设计,用C语言编写的程序可以不加修改地用于C++。
三、与C语言不同的地方
3.1头文件
我们知道,C语言的头文件大多数都是stdio.h,或者其它的,而C++则是用iostream,注意,这里是没有.h后缀的,因为早在以前的时候,有一些编译器是可以用.h的,例如VC6.0(因为它没有命名空间),但后来命名空间的出现,这里就规定把.h去掉了,因为这样可以更好的与C语言区分开。
四、命名空间
4.1命名空间的概念写法
在C语言中我们可以知道命名冲突是一个很大的问题,在C/C++中,变量、函数和类是大量存在的,这些变量、函数和类的名称都将存在于全局变量中,可能会导致非常多的冲突。
这里就可以使用命名空间对标识符的名称进行本地化,以避免命名冲突或名字污染,namespce关键字就是解决这类问题的。
我们知道一段代码里有不同的域,例如类域,变量域,常量域,类域,还有命名空间域。
namespace n1
{int rand = 1;
}
这里就命名了一个n1的域,可以想象这是一个小块,这里面有一个整形变量rand赋值为1。我们知道rand是一个函数,但为什么没有报错命名冲突呢,因为这里它是在n1的域里的,并不是全局域里的,所以不会发生冲突。注意这里大括号外面没有分号了。
4.2命名空间的访问
首先,我们先看一下这个代码:
int a = 0;//全局域int main()
{int a = 10;//局部域printf("%d\n", a);return 0;
}
我们之前学过,这里如果调用a这个变量,它是会是局部域,也就是最后打印的结果是10。但是如果我们想要也打印出来全局域的a变量该怎么写。
这里就会用到一个符号:::(双冒号)
双冒号
::
是一个作用域解析运算符(scope resolution operator),用于指定命名空间、类、结构体、枚举等的作用域。
如果也要打印全局变量的a,我们就可以写成:
int a = 0;//全局域int main()
{int a = 10;//局部域printf("%d\n", a);printf("%d\n", ::a);//::左边是空白代表去全局域访问return 0;
}
::左边要是空白的话,那就代表着全局域。
这里运行一下我们可以看见:
运行成功,和我们的想法一致,如果我们加上了之前的命名空间,并把之前的rand变为a,我们该如何访问这个命名空间里的a呢?我们依旧可以用爽冒号来实现这一效果:
namespace n1
{int a=9;
}int a = 0;//全局域int main()
{int a = 10;//局部域printf("%d\n", a);printf("%d\n", n1::a);return 0;
}
可以看见访问成功了,这个的意义其实就是可以通过命名空间来防止大项目里的命名冲突。这里如果我们把命名空间打开了会怎么样。命名空间打开时用:
using namespace +之前命名空间的名字;
所以我们把刚刚的代码修改一下,命名空间打开:
namespace n1
{int a = 9;
}
using namespace n1;int a = 0;//全局域int main()
{int a = 10;//局部域printf("%d\n", a);printf("%d\n", n1::a);return 0;
}
这里就把命名空间打开了。这时候运行:
也是可以的,这里看不出什么,依旧是局部变量先访问,命名空间也可以访问。我们把主函数里修改就输出一个a,看看会发生什么?
namespace n1
{int a = 9;
}
using namespace n1;int a = 0;//全局域int main()
{int a = 10;//局部域printf("%d\n", a);return 0;
}
我们发现这里a输出的是10,所以如果把命名空间打开,那么命名空间里的就相当于全局域。
我们不妨可以试一试,输出全局域的,程序会怎么样:
namespace n1
{int a = 9;
}
using namespace n1;int a = 0;//全局域int main()
{printf("%d\n", a);return 0;
}
运行一下就会发生报错:
a不明确,也就发生了冲突。所以在使用命名空间打开的时候,要注意。
正常是局部域->全局域->不会主动去命名空间搜索,需要指定或者展开
4.3命名空间的嵌套
当然,命名空间也可以进行嵌套。但这里我们主要了解的是嵌套的意义和使用访问方法。
namespace N1
{int i = 0;namespace N2{int i = 2;}
}
这就是一个嵌套的命名空间,我们如果想要访问这两个i,给它打印到屏幕上该怎么写呢?
这里还是会用到双冒号:
int main()
{//嵌套访问printf("%d\n", N1::i);printf("%d\n", N1::N2::i);return 0;
}
这样就访问到了,代表N1中的i和N1中N2里的i。这样做有什么作用呢?
组织代码:嵌套命名空间可以将相关的代码组织在一起,使得代码更加清晰和结构化。例如,可以将与图形相关的类和函数放在一个命名空间内,将与网络相关的类和函数放在另一个命名空间内。
避免命名冲突:通过在不同的命名空间中使用相同的名称,可以避免命名冲突。例如,如果有两个模块都定义了一个名为"Utils"的命名空间,那么它们可以通过嵌套命名空间来解决冲突,如"Module1::Utils"和"Module2::Utils"。
提供更好的可扩展性:通过嵌套命名空间,可以将代码组织成多层次的结构,从而提供更好的可扩展性。例如,可以在一个命名空间内创建多个子命名空间,每个子命名空间代表不同的功能模块或组件。
提供更好的封装性:嵌套命名空间可以将代码隐藏在一个命名空间内,从而提供更好的封装性。只有在需要的时候才会引用外部命名空间的内容,减少了全局命名空间的污染。
总的来说,嵌套命名空间可以提供更好的代码组织、封装和可维护性,避免命名冲突,并提供更好的可扩展性。它是一种良好的编程实践,特别适用于大型项目和团队协作。
4.4命名空间在实际中的几种写法
1.假如我们要使用std命名空间,如果我们要在项目中使用命名空间,就尽量最好不要打开,因为一旦打开后,你不知道会发生什么,会和哪一个冲突,这样很不方便而且很头疼,最好是不用打开。就类似下面的:
using namespace std;
展开了std命名空间,编译器就可以进行搜索,推荐这么写,后续就可以不加了,但直接展开会有风险,如果定义和库重名就报错了,建议项目里不要这么写。
平时我们练习代码可以这么写,因为比较方便。
2.我们可以用到库的时候,再用双冒号来写:
std::cout
但是假如我们要写成千上万个呢,那就非常麻烦了。
3.所以我们可以把常用的在前面展开,不把整个命名空间展开:
using std::cout;
using std::endl;
这样后续我们就可以用cout和endl了,就不需要进行用双冒号了,冲突问题就大大的减小了。
五、输入输出
5.1cout
插入流运算符,cout就相当于c语言中的打印,这里也就是输出,我们可以直接用代码进行演示,非常的简单:
#include<iostream>
using std::cout;//流插入运算符,连续一样插入多个东西,不用指定类型,自动识别类型
using std::endl;//等价于换行符
int main()
{cout << "hello world" << endl;return 0;
}
这里cout<<后面直接加上自己想要输出的东西,它有一个优点,就是它可以自动识别类型,完了输出类型,但是当它输出小数的时候,只会输出一位小数,如果我们想要设置小数的宽度,建议直接使用C语言的设定宽度,因为c++里的有点难用。因为c++包含了c,所以c里的东西c++也可以使用,我们可以穿插着来写。
如果输出多个,可以这么写:
int main()
{int a = 3;cout << "hello world" << " " << a << endl;return 0;
}
5.2endl
这里理解为c++里的换行,和C语言里的'\n'是一样的效果。
5.3cin
流提取运算符,这里就是和C语言中的scanf一样,但是使用比C要简单:
#include<iostream>
using std::cin;//流提取运算符
using std::cout;//流插入运算符,连续一样插入多个东西,不用指定类型,自动识别类型
using std::endl;//等价于换行符
int main()
{int x = 0;cin >> x;cout << "hello world" << endl;cout << "hello world" << x << endl;return 0;
}
这里就用了这三个,会用就可以,不用深入了解。等到精通的时候可以考虑深入了解实现。
总结
今天主要就是C++的认识初始。
相关文章:
C++学习——认识和与C的区别
目录 前言 一、什么是C 二、C关键字 三、与C语言不同的地方 3.1头文件 四、命名空间 4.1命名空间的概念写法 4.2命名空间的访问 4.3命名空间的嵌套 4.4命名空间在实际中的几种写法 五、输入输出 5.1cout 5.2endl 5.3cin 总结 前言 开启新的篇章,这里…...
Open FPV VTX开源之ardupilot双OSD配置摄像头
Open FPV VTX开源之ardupilot双OSD配置 1 源由2. 分析3. 配置4. 解决办法5. 参考资料 1 源由 鉴于笔者这台Mark4 Copter已经具备一定的历史,目前机载了两个FPV摄像头: 模拟摄像头数字摄像头(OpenIPC) 测试场景: 从稳定性的角度࿱…...
基于微信小程序高校课堂教学管理系统 课堂管理系统微信小程序(源码+文档)
目录 一.研究目的 二.需求分析 三.数据库设计 四.系统页面展示 五.免费源码获取 一.研究目的 困扰管理层的许多问题当中,高校课堂教学管理也是不敢忽视的一块。但是管理好高校课堂教学又面临很多麻烦需要解决,如何在工作琐碎,记录繁多的情况下将高校课堂教学的当前情况反…...
unity商店插件A* Pathfinding Project如何判断一个点是否在导航网格上?
需要使用NavGraph.IsPointOnNavmesh(Vector3 point) 如果点位于导航网的可步行部分,则为真。 如果一个点在可步行导航网表面之上或之下,在任何距离,如果它不在更近的不可步行节点之上 / 之下,则认为它在导航网上。 使用方法 Ast…...
三星手机人脸识别解锁需要点击一下电源键,能够不用点击直接解锁吗
三星手机的人脸识别解锁功能默认需要滑动或点击屏幕来解锁。这是为了增强安全性,防止误解锁的情况。如果希望在检测到人脸后直接进入主界面,可以通过以下设置调整: 打开设置: 进入三星手机的【设置】应用。 进入生物识别和安全&a…...
read+write实现:链表放到文件+文件数据放到链表 的功能
思路 一、 定义链表: 1 节点结构(数据int型) 2 链表操作(创建节点、插入节点、释放链表、打印链表)。 二、链表保存到文件 1打开文件 2遍历链表、写文件: 遍历链表,write()将节点数据写入文件。…...
猫怎么分公的母的?
各位铲屎官们,是不是刚领养了一只小猫咪,却分不清它是公是母?别急,今天就来给大家好好揭秘,如何轻松辨别猫咪的性别,让你不再为“它”是“他”还是“她”而烦恼! 一、观察生殖器位置 最直接的方…...
为何SAP S4系统中要设置MRP区域?MD04中可否同时显示工厂级、库存地点级的数据?
【SAP系统PP模块研究】 一、物料主数据的MRP区域设置 SAP ECC系统中想要指定不影响MRP运算的库存地点,是针对库存地点设置MRP标识,路径为:SPRO->生产->物料需求计划->计划->定义每一个工厂的存储地点MRP,如下图所示: 另外,在给物料主数据MMSC扩充库存地点时…...
Redis for AI
Redis存储和索引语义上表示非结构化数据(包括文本通道、图像、视频或音频)的向量嵌入。将向量和关联的元数据存储在哈希或JSON文档中,用于索引和查询。 Redis包括一个高性能向量数据库,允许您对向量嵌入执行语义搜索。可以通过过…...
初阶2 类与对象
本章重点 上篇1.面向过程和面向对象初步认识2.类的引入---结构体3.类的定义3.1 语法3.2 组成3.3 定义类的两种方法: 4.类的访问限定符及封装4.1 访问限定符4.2封装---面向对象的三大特性之一 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小 8.this指…...
kafka-部署安装
一. 简述: Kafka 是一个分布式流处理平台,常用于构建实时数据管道和流应用。 二. 安装部署: 1. 依赖: a). Java:Kafka 需要 Java 8 或更高版本。 b). zookeeper: #tar fxvz zookeeper-3.7.0.tar.gz #…...
深入探讨防抖函数中的 this 上下文
深入剖析防抖函数中的 this 上下文 最近我在研究防抖函数实现的时候,发现一个耗费脑子的问题,出现了令我困惑的问题。接下来,我将通过代码示例,深入探究这些现象背后的原理。 示例代码 function debounce(fn, delay) {let time…...
人工智能丨Midscene:让UI自动化测试变得更简单
在这个数字化时代,每一个细节的优化都可能成为产品脱颖而出的关键。而对于测试人员来说,确保产品界面的稳定性和用户体验的流畅性至关重要。今天,我要向大家介绍一款名为Midscene的工具,它利用自然语言处理(NLP&#x…...
【数据结构】_链表经典算法OJ(力扣版)
目录 1. 移除链表元素 1.1 题目描述及链接 1.2 解题思路 1.3 程序 2. 反转链表 2.1 题目描述及链接 2.2 解题思路 2.3 程序 3. 链表的中间结点 3.1 题目描述及链接 3.2 解题思路 3.3 程序 1. 移除链表元素 1.1 题目描述及链接 原题链接:203. 移除链表…...
DeepSeek-R1技术报告速读
春节将至,DeepSeek又出王炸!DeepSeek-R1系列重磅开源。本文对其技术报告做简单解读。 话不多说,show me the benchmark。从各个高难度benchmark结果来看,DeepSeek-R1已经比肩OpenAI-o1-1217,妥妥的第一梯队推理模型。…...
560. 和为 K 的子数组
【题目】:560. 和为 K 的子数组 方法1. 前缀和 class Solution { public:int subarraySum(vector<int>& nums, int k) {int res 0;int n nums.size();vector<int> preSum(n 1, 0); // 下标从1开始存储for(int i 0; i < n; i) {preSum[i 1]…...
鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)
目录 1)仓颉的SDK下载 1--进入仓颉的官网 2--点击图片中的下载按钮 3--在新跳转的页面点击即刻下载 4--下载 5--找到你们自己下载好的地方 6--解压软件 2)仓颉编程环境配置 1--找到自己的根目录 2--进入命令行窗口 3--输入 envsetup.bat 4--验证是否安…...
NodeJs / Bun 分析文件编码 并将 各种编码格式 转为 另一个编码格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)
版本号 "iconv-lite": "^0.6.3", "chardet": "^2.0.0",github.com/runk/node-chardet 可以识别文本是 哪种编码 ( 大文件截取一部分进行分析,速度比较快 ) let bun_file_obj Bun.file(full_file_path) let file_bytes await bun_f…...
Java学习笔记(二十五)
1 Kafka Raft 简单介绍 Kafka Raft (KRaft) 是 Kafka 引入的一种新的分布式共识协议,用于取代之前依赖的 Apache ZooKeeper 集群管理机制。从 Kafka 2.8 开始,Kafka 开始支持基于 KRaft 的独立模式,计划在未来完全移除 ZooKeeper 的依赖。 1…...
Baklib如何结合内容中台与人工智能技术实现数字化转型
内容概要 在当前快速发展的数字环境中,企业面临着转型的紧迫性与挑战,尤其是在内容管理和用户互动的领域。内容中台作为一种集成化的解决方案,不仅能够提高企业在资源管理方面的效率,还能够为企业提供一致性和灵活性的内容分发机…...
git困扰的问题
.gitignore中添加的某个忽略文件并不生效 把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效, gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 解决方…...
第05章 12 可视化热量流线图一例
下面是一个使用VTK(Visualization Toolkit)和C编写的示例代码,展示如何在一个厨房模型中可视化热量流线图,并按照热量传递速度着色显示。这个示例假设你已经安装了VTK库,并且你的开发环境已经配置好来编译和运行VTK程序…...
Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向
在 Vue 项目中实现导出 PDF 文件、调整文件页面大小和页面方向的功能,使用 html2canvas 将 HTML 内容转换为图片,再使用 jspdf 把图片添加到 PDF 文件中。以下是详细的实现步骤和代码示例: 步骤 1:安装依赖 首先,在项…...
LTV预估 | 深度学习PLTV之开山鼻祖ZILN
🤣 这一集让我们欢迎基于深度学习的pltv方法:ZILN,ZILN可以说是后面很多研究的参考方法,我看了好几篇最新的pltv论文,都是基于ZILN来做的。 文章目录 1 精简总结2 背景&挑战:3 方法:实验&am…...
MFC常用操作
1,获取STATIC控件的值 CString str; m_STATIC2.GetWindowText(str);//获取STATIC控件的值 MessageBox(str); 2.设置EDIT控件的值 m_EDIT2.SetWindowText(str);//设置EDIT控件的值 GetDlgItem(IDC_EDIT1)->SetWindowText("Leave");//设置EDIT控件的值…...
第24篇 基于ARM A9处理器用汇编语言实现中断<六>
Q:怎样设计ARM处理器汇编语言程序使用定时器中断实现实时时钟? A:此前我们曾使用轮询定时器I/O的方式实现实时时钟,而在本实验中将采用定时器中断的方式。新增第三个中断源A9 Private Timer,对该定时器进行配置&#…...
【学习笔记】计算机网络(二)
第2章 物理层 文章目录 第2章 物理层2.1物理层的基本概念2.2 数据通信的基础知识2.2.1 数据通信系统的模型2.2.2 有关信道的几个基本概念2.2.3 信道的极限容量 2.3物理层下面的传输媒体2.3.1 导引型传输媒体2.3.2 非导引型传输媒体 2.4 信道复用技术2.4.1 频分复用、时分复用和…...
2025多目标优化创新路径汇总
多目标优化是当下非常热门且有前景的方向!作为AI领域的核心技术之一,其专注于解决多个相互冲突的目标的协同优化问题,核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中,几乎处处都有它的身影。 但随着需求场景的…...
图漾相机-ROS2-SDK-Ubuntu版本编译(新版本)
官网编译文档链接: https://doc.percipio.xyz/cam/latest/getstarted/sdk-ros2-compile.html 国内gitee下载SDK链接: https://gitee.com/percipioxyz 国外github下载SDK链接: https://github.com/percipioxyz 1.Camport ROS2 SDK 介绍 1.1 …...
字符设备驱动模版-中断
字符设备驱动模版-中断 思维导图在线高清查看:https://www.helloimg.com/i/2025/01/27/679791b5257c0.png 修改设备树 1添加pinctrl节点 1创建对应的节点 在 iomuxc 节点的 imx6ul-evk 子节点下 2添加“fsl,pins”属性 3在“fsl,pins”属性中添加PIN配置信息 …...
STM32 旋转编码器
旋转编码器简介 旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向 类型:机械触点式/霍尔传…...
java ,springboot 对接支付宝支付,实现生成付款二维码,退款,查询订单状态等接口
查看文档 支付宝文档地址: 小程序文档 - 支付宝文档中心 使用沙箱环境 沙箱登录地址 登录 - 支付宝 点击查看 才能看钥匙截图写错了。。 问号可以看默认加密方式 点击沙箱帐号 这里我们就具备所有条件了 实战开始 pom文件增加依赖 <dependency> <gro…...
OpenCV:形态学梯度
目录 简述 1. 用图像运算和腐蚀实现形态学梯度 1.1 代码示例 1.2 运行结果 2. 形态学梯度接口 2.1 参数解释 2.2 代码示例 2.3 运行结果 3. 形态学梯度与边缘检测 4. 形态学梯度的应用场景 5. 注意事项 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 简述…...
图漾相机搭配VisionPro使用简易教程
1.下载并安装VisionPro软件 请自行下载VisonPro软件。 VisionPro 9.0/9.5/9.6版本经测试,可正常打开图漾相机,建议使用图漾测试过的版本。 2.下载PercipioCameraForVisionPro软件包 使用浏览器下载:https://gitee.com/percipioxyz/camport3…...
《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》重印P126、P131勘误
勘误:打圈的地方有指数二字。 指数滤波器本身是错误的概念,我在书上打了一个叉,排版人员误删了。 滤波器部分从根本上有问题,本来要改,但是时间不够了。 和廖老师讨论多次后,决定大动。指数滤波器的概念…...
4、PyTorch 第一个神经网络,手写神经网络的基本部分组成
假设有一个二维数据集,目标是根据点的位置将它们分类到两个类别中(例如,红色和蓝色点)。 以下实例展示了如何使用神经网络完成简单的二分类任务,为更复杂的任务奠定了基础,通过 PyTorch 的模块化接口&#…...
Vue实现div滚动,并且支持top动态滚动
如果你知道距离目标 div 顶部的像素值,并希望通过传入 top 参数来实现滚动到对应区域,可以使用 window.scrollTo 方法。 编写滚动方法 const scrollToDiv (targetDiv, top) > {if (targetDiv) {top top * targetDiv.value.scrollHeight / data.he…...
【QT】- QUdpSocket
QUdpSocket 是 Qt 自带的一个类,属于 Qt 网络模块,用于进行 UDP(用户数据报协议) 通信。它提供了简便的接口来发送和接收 UDP 数据报(datagrams)。 UDP 是一种无连接的协议,适用于那些不需要确…...
WGCLOUD运维工具从入门到精通 - 如何设置主题背景
需要升级到WGCLOUD的v3.5.7或者以上版本,才会支持自定义设置主题背景色 WGCLOUD下载:www.wgstart.com 我们登录后,在右上角点击如下的小图标,就可以设置主题背景色了,包括:经典白(默认&#x…...
【Elasticsearch】中数据流需要配置索引模板吗?
是的,数据流需要配置索引模板。在Elasticsearch中,数据流(Data Streams)是一种用于处理时间序列数据的高级结构,它背后由多个隐藏的索引组成,这些索引被称为后备索引(Backing Indices࿰…...
Python 合并 Excel 单元格
合并 Excel 单元格是 Excel 数据处理和表格设计中的一项常用操作。例如,在制作表格标题时,经常会将多个单元格合并,使标题能够跨列显示,更加醒目和美观。此外,当对数据进行分类时,为了使同一类别的数据在视…...
C++中左值和右值的概念
文章目录 一、概要二、左值(Lvalue)二、右值(Rvalue)三、左值引用和右值引用四、左值和右值的使用场景五、总结 一、概要 在 C 中,左值(Lvalue)和右值(Rvalue)是两个非常…...
27.日常算法
1. 最后一个单词的长度 题目来源 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s “Hello Wor…...
动态规划DP 数字三角形模型 传纸条(题目分析+C++完整代码)
传纸条 原题链接 AcWing 275. 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。 一次素质拓展活动中,班上同学安排坐成一个 m行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此&#x…...
Spark入门(Python)
目录 一、安装Spark 二、Spark基本操作 一、安装Spark pip3 install pyspark 二、Spark基本操作 # 导入spark的SparkContext,SparkConf模块 from pyspark import SparkContext, SparkConf # 导入os模块 import os # 设置PYSPARK的python环境 os.environ[PYSPARK_PYTHON] &…...
.NET Core缓存
目录 缓存的概念 客户端响应缓存 cache-control 服务器端响应缓存 内存缓存(In-memory cache) 用法 GetOrCreateAsync 缓存过期时间策略 缓存的过期时间 解决方法: 两种过期时间策略: 绝对过期时间 滑动过期时间 两…...
IoTDB 2025 春节值班与祝福
2025 春节快乐 瑞蛇迎吉庆,祥光映华年,2025 春节已近在眼前。社区祝福 IoTDB 的所有关注者、支持者、使用者 2025 新年快乐,“蛇”来运转! IoTDB 团队的春节放假时间为 2025 年 1 月 27 日至 2 月 4 日,1 月 25 日、26…...
Qt Ribbon使用实例
采用SARibbon创建简单的ribbon界面 实例代码如下所示: 1、头文件: #pragma once #include <SARibbonBar.h> #include "SARibbonMainWindow.h" class QTextEdit; class SAProjectDemo1 : public SARibbonMainWindow { Q_OBJECT pub…...
maven的打包插件如何使用
默认的情况下,当直接执行maven项目的编译命令时,对于结果来说是不打第三方包的,只有一个单独的代码jar,想要打一个包含其他资源的完整包就需要用到maven编译插件,使用时分以下几种情况 第一种:当只是想单纯…...
Linux——rzsz工具
rzsz这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件. 安装完毕之后可以通过拖拽的方式将文件上传过去. 安装rzsz工具 rz:从Windows机器上传到远程Linux机器(或者直接把文件托进Xshell中) sz:将文件从Linux远…...