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

C++中的各式类型转换

隐式转换:

基本类型的隐式转换:

当函数参数类型非精确匹配,但是可以转换的时候发生

如:

void func1(double x){cout << x << endl;
}void func2(char c){cout << c << endl;
}int main(){func1(2);//int隐式转换为doublefunc2(3);//int隐式转换为charreturn 0;
}

自定义类型的隐式转换:

函数参数列表接受类类型变量,传入的单个参数不是类对象,但可以通过这个参数调用类对应的构造函数,那么编译器就会将其隐式转换为类对象

如:

class A{
private:int a;
public:A(int x):a{x}{}
};
void func(A a){cout << "func" << endl;
}int main(){func(1);//隐式将int转换为A对象A obj = 1;//同上return 0;
}

多参数构造函数:

调用多参数构造函数时,将所有参数用用{}括起来,表示是一个初始化列表,但这并不属于自定义类型隐式转换,而是隐式构造

class A{
private:int a;
public:A(int x):a{x}{}
};class B{
private:A obj;int b;
public:B(A a,int x):obj{a},b{x}{}
};void func(B b){cout << "func" << endl;
}
int main(){func({A{1}, 2});//使用{A,int}隐式构造B对象func({1,2});//仍能运行,隐式将1转换为A对象,然后用{A,int}隐式构造B对象return 0;
}

值得注意:

自定义的类型转换不能连续发生两次以上,否则会报错

例如:

class A{
private:string str;
public:A(const string& s):str{s}{}
};void func(A a){cout << "func"<<endl;
}int main(){func("Hello");//报错,因为需要将const char*隐式转换为string,string转换为const string,//再将string隐式转换为A//需要发生两次自定义类型隐式转换func(string{"Hello"});//编译通过,只需要string转换为const string,再将string隐式转换为A,//只发生一次自定义类型隐式转换return 0;
}

禁止任何隐式调用的关键字:explicit

在类构造函数前加上explicit关键字,则该构造函数无法再被隐式转换或隐式构造

从而防止某些错误的函数调用,比如想传入int却被隐式转换为了类对象

class A{
public:explicit A(int x){cout << x << endl;}explicit A(int x,int y){cout << x << y << endl;}
};A func(int a,int b){return {a, b};//禁止{int,int}到A的隐式构造
}A func(int x){return A{x};//合法return A{x, x};//合法
}int main(){A a = 1;//禁止int到A的隐式转换return 0;
}
好习惯:

将所有接受单个参数(包括多个参数,但只有一个参数没有缺省值的)的构造函数都限定为explicit

拷贝构造和移动构造不应该限定为explicit

显式转换:

初始化列表式转换:

使用type{var}的方式进行转换,如int{'c'}

这种转换只允许小范围变量向大范围变量转换,不允许反向,如

int x{3.5};//不被允许截断
long long y{3};
cout<<double{y}<<endl;//不允许被截断

C风格转换:

使用类似(int),或者int()的方式来转换类型,底层是组合调用了C++的各种cast函数来进行转换,因此不推荐使用这种转换

在这种转换中,尝试的cast调用顺序:

const_cast

static_cast

static_cast+const_cast

reinterpret_cast

reinterpret_cast+const_cast

const_cast转换:

实际极少使用

使用方式:

const_cast<to_type>(var)

作用:

给变量添加/去除const属性

如果该变量本身就是const变量,则无法真正地去除const属性

例如:

int main(){const int x = 2;const int *p = &x;int *p2 = const_cast<int *>(p);*p2 = 3;cout << x << endl;cout << *p2 << endl;return 0;
}

输出:

2
3

这里我们试图去除p所指向的的变量的const属性,并通过p2来修改其值,但在打印x时输出的值仍为2,这是因为编译器在编译的时候知道x为const变量,因此将cout<<x直接优化成了cout<<2,从而保证了其不会被修改。

而我们尝试使用p2去修改x的值,这属于未定义行为,需避免。因此,对于本身为const属性的变量,我们不应该使用const_cast来去除其const属性,否则可能会导致未定义行为

const_cast用于去除本来不是const变量的const属性

如:

void func(const int*p){int *p2 = const_cast<int *>(p);//用来去除被函数传参过程中隐式添加的const属性*p2 = 6;
}int main(){int x = 3;const int *p = const_cast<const int *>(&x);//人为为其添加const属性,使其无法被修改//在经过了一段时间的应用后,现在又想修改x的值了int *p2 = const_cast<int *>(p);*p2 = 5;cout << *p << endl;func(&x);cout << *p << endl;return 0;
}

static_cast转换:

使用方式:

static_cast<to_type>(var)

作用:

1.进行基本类型之间的转换(允许截断,告诉编译器是有意为之的截断)

相比之下,列表初始化转化不允许截断,因此更推荐使用static_cast进行转换,当然程序员要负起截断的责任,告诉大家这是有意为之的截断,而不是自己大意导致的截断

int x=static_cast<int>(3.14);

2.进行安全性检查,不允许无关类型指针互转

int main(){double x = 3.2;int *p2 = static_cast<int *>(&x);//不合法return 0;
}

3.可以将void*指针转为任意类型指针

无安全性检查,需要保证指向的类型正确(下例为不正确用法)

int main(){double x = 3.2;int *p2 = static_cast<int *>(static_cast<void*>(&x));//通过double*转void*,再从void*转到int*,跳过了安全性检查return 0;
}

4.将派生类指针/引用/对象转换为基类指针/引用/对象(向上转换)

class Base{
};
class Derived:public Base{
};
int main(){Base *p_b = static_cast<Base *>(new Derived);Derived d;Base &ref_b = static_cast<Base &>(d);Base obj_b = static_cast<Base>(d);//导致对象切片
}

5.将基类指针/引用转换为派生类指针/引用(向下转换,不推荐)

无安全性检查,需要保证基类指针指向要转换的派生类或者其派生类

若基类派生类拥有虚函数,应优先使用dynamic_cast(下文讲解)

Base* p_b2=new Derived;
Derived* p_d=static_cast<Derived*>(p_b2);//合法

6.显式调用自定义构造函数/类型转换函数进行转换

class MyInt {
public:explicit MyInt(int x) : value(x) {}operator int() const { return value; }  // 自定义的转换运算符
private:int value;
};MyInt mi = static_cast<MyInt>(42);  // 调用构造函数
int x = static_cast<int>(mi);       // 调用 operator int()

dynamic_cast转换:

使用方式:

dynamic_cast<Derived_ptr/Derived_ref>(Base_ptr/Base_ref);

作用:

仅能对拥有虚函数的基类/派生类使用,且不能是protected/private继承关系

基类为虚基类时,在某些情况会导致dynamic_cast失败

对基类的指针/引用进行安全检查的向下转换(转换为派生类指针/引用)

也可进行向上转换(不推荐,应使用static_cast)

返回值:

若转换成功,即Base_ptr/Base_ref实际指向的对象是Derived对象或者是其派生类对象,则返回指向该对象的Derived_ptr/Derived_ref

若转换失败,即Base_ptr/Base_ref实际指向的是别的东西,则返回nullptr

值得注意的是:

dynamic_cast依赖于RTTI(run-time type information)来确定指针指向对象的实际类型从而进行转换,因此,没有虚函数,或者关闭了RTTI优化,都会导致对象的RTTI信息丢失,从而导致dynamic_cast失败

reinterpret_cast转换:

该转换无安全性检查,直接重新解释对象的二进制比特模式

高安全风险,极少使用,不推荐

使用方式:

reinterpret_cast<to_type>(var);

作用:

1.任意类型之间的指针互转

2.指针与整数互转

3.函数指针与数据指针互转

4.任意数据类型互转

路径不确定导致的转换二义性:

1.非虚继承的菱形继承的向上转换:

此时将指向D对象的D指针向上转换为A指针时,会出现二义性错误,因为编译器不知道指向哪个A对象,这种情况下,只能一层一层地向上转换,直到产生二义性的路径消失,方可一次性转换到A

2.虚继承导致的菱形继承的向下转换:

此时将指向E对象的A指针向下转换为B指针时,会出现二义性错误,因为编译器不知道指向哪个B对象,而且虚继承导致指针偏移无法计算(虚继承机制以后的文章再讲解),这种情况下,只能先转成E指针,再向上转换,直到二义性路径消失

3.同层交叉cast转换:

可以直接将指向E对象的D指针用dynamic_cast转换为B指针

只需要满足B和D没有共同的虚基类即可(有的话,会导致指针偏移无法计算,从而dynamic_cast失败),有的话,使用第二点的方法

相关文章:

C++中的各式类型转换

隐式转换&#xff1a; 基本类型的隐式转换&#xff1a; 当函数参数类型非精确匹配&#xff0c;但是可以转换的时候发生 如&#xff1a; void func1(double x){cout << x << endl; }void func2(char c){cout << c << endl; }int main(){func1(2);//…...

转发多台px4仿真UDP数据到地面站

转发脚本的任务需求 仿真采用UDP通信方式&#xff0c;在 wsl 中仿真三台飞机&#xff0c;项目需要将一台电脑中的三台飞机的数据打包发送到另一台飞机的地面站&#xff0c;但地面站是无法直接访问另一台主机的 wsl 中的端口的&#xff0c;wsl 中的端口需要本机才能访问&#x…...

polarctf-web-[简单rce]

考点&#xff1a; (1)RCE(eval函数) (2)执行函数(passthru函数) (3)/顶级(根)目录查看 (4)sort排序查看函数 题目来源&#xff1a;Polarctf-web-[简单rce] 解题&#xff1a; 代码审计 <?php/*​PolarD&N CTF​*/highlight_file(__FILE__);function no($txt){ # …...

Deno、Bun、Node.js 性能对比与选型指南

Deno、Bun、Node.js 性能对比与选型指南 一、背景介绍 在现代 JavaScript/TypeScript 开发中&#xff0c;运行时&#xff08;Runtime&#xff09;已经不仅仅是 Node.js 一家独大。随着 Deno 和 Bun 的崛起&#xff0c;开发者拥有了更多选择。那么这三者在性能、兼容性、生态和…...

如何优化MCU中断响应时间

目录 1、硬件层优化策略 1.1、中断控制器配置优化 1.2、DMA协同中断优化 1.3、中断向量表重映射技术 2、软件层优化技术 2.1、中断服务程序优化准则 2.2、编译器优化策略 3、系统架构级优化 中断响应时间由硬件延迟和软件延迟共同构成。硬件延迟包括中断信号传输时间、…...

当java进程内存使用超过jvm设置大小会发生什么?

当 Java 进程的内存使用超过 JVM 设置的最大内存限制时&#xff0c;具体会发生以下情况&#xff0c;取决于内存溢出的区域和配置&#xff1a; 1. 堆内存溢出&#xff08;Heap Memory Exhaustion&#xff09; 触发条件&#xff1a;对象分配请求超过 -Xmx&#xff08;最大堆内存…...

FFmpeg多路节目流复用为一路包含多个节目的输出流

在音视频处理领域&#xff0c;将多个独立的节目流&#xff08;如不同频道的音视频内容&#xff09;合并为一个包含多个节目的输出流是常见需求。FFmpeg 作为功能强大的多媒体处理工具&#xff0c;提供了灵活的流复用能力&#xff0c;本文将通过具体案例解析如何使用 FFmpeg 实现…...

MongoDB与PostgreSQL两个数据库的特点详细对比

MongoDB 和 PostgreSQL 是两种不同类型的数据库&#xff0c;分别属于 ​​NoSQL&#xff08;文档型&#xff09;​​ 和 ​​关系型&#xff08;SQL&#xff09;​​ 数据库。它们在数据模型、查询语言、扩展性、事务支持等方面有显著差异。以下是详细对比&#xff1a; ​​1. …...

IDEA查看类结构视图窗口,接口的所有的实现类图

在IntelliJ&#xff08;idea&#xff09;中&#xff0c;可以通过以下步骤查看类结构窗口&#xff1a; 打开IntelliJ IDEA&#xff0c;并打开你的项目。在顶部菜单栏中&#xff0c;选择"View"&#xff08;视图&#xff09;选项。在下拉菜单中&#xff0c;选择"To…...

一文辨析Java基本数据类型与包装类

Java 基本数据类型与包装类深度解析 前言一、Java 基本数据类型详解1.1 数值型1.1.1 整型1.1.2 浮点型 1.2 字符型1.3 布尔型 二、Java 包装类详解2.1 包装类与基本数据类型的对应关系2.2 包装类的常用方法 三、基本数据类型与包装类的转换3.1 装箱&#xff08;Boxing&#xff…...

MapReduce 模型

‌引言‌ MapReduce 是分布式计算领域的里程碑式模型&#xff0c;由 Google 在 2004 年论文中首次提出&#xff0c;旨在简化海量数据处理的复杂性。其核心思想是通过函数式编程的 ‌Map‌ &#xff08;映射&#xff09;和 ‌Reduce‌ &#xff08;归约&#xff09;阶段&#x…...

中国人工智能智能体研究报告

中国人工智能智能体研究报告 I. 引言&#xff1a;定义人工智能智能体及其在中国的兴起 人工智能智能体&#xff0c;作为一种能够自主感知环境、做出决策并执行行动以达成特定目标的智能实体&#xff0c;正日益受到关注。与需要明确指令才能执行任务的传统人工智能系统不同&am…...

2025年PMP 学习十 -第8章 项目质量管理(8.1,8.2)

第8章 项目质量管理&#xff08;8.1&#xff0c;8.2&#xff09; 1. 质量的概念 反映实体满足主体明确和隐含需求的能力的特性总合 —— ISO&#xff1b;一组固定特性满足需求的程度 —— GB/T 19000-2008&#xff1b; 2. 质量 vs 等级 低等级 高质量 低等级、高质量的产品&…...

使用 IntelliJ IDEA 和 Maven 创建 Spark 项目

以下是使用 IntelliJ IDEA 和 Maven 创建 Spark 项目的详细步骤&#xff1a; 环境准备 安装 IntelliJ IDEA&#xff1a;从 IntelliJ IDEA 官网 下载并安装最新版本。安装 Maven&#xff1a;从 Maven 官方网站 下载并安装 Maven&#xff0c;安装后确保在命令行中可通过 mvn -v…...

解锁生命周期评价密码:OpenLCA、GREET 与 R 语言的融合应用

技术点目录 生命周期评价理论及常用指标与分析方法OpenLCA生命周期评估模型构建与分析基于GREET气体排放、能源消耗计算及生命周期评估模型构建方法生物质碳排放评估构建及基于R语言结果分析了解更多 ————————————————————————————————————…...

LeetCode 热题 100_多数元素(97_169_简单_C++)(哈希表;排序)

LeetCode 热题 100_多数元素&#xff08;97_169_简单_C&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;哈希表&#xff09;&#xff1a;思路二&#xff08;排序&#xff09;&#xff1a; 代码实现代码实现&…...

【C++】【设计模式】生产者-消费者模型

生产者-消费者模型&#xff08;Producer-Consumer Model&#xff09;是一种经典的并发编程模式&#xff0c;用于解决多线程或多进程环境下的数据共享和任务协作问题。以下是对该模型的详细介绍&#xff1a; 一、核心概念 生产者&#xff08;Producer&#xff09;&#xff1a;…...

第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学

目录 引言&#xff1a;生活中的接口无处不在一、咖啡机与基础接口&#xff1a;理解抽象契约1.1 咖啡制作的标准接口 二、智能家居与策略模式&#xff1a;灵活切换实现2.1 温度调节策略场景 三、物流系统与工厂模式&#xff1a;标准接口下的多样实现3.1 快递运输接口设计 四、健…...

centos9安装docker 配置docker代理

设置docker库 sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装 Docker 包 sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin …...

OpenAI for Countries:全球AI基础设施的“技术基建革命”

2025年5月7日&#xff0c;OpenAI宣布启动“OpenAI for Countries”计划&#xff0c;目标是为全球各国构建本土化的AI基础设施&#xff0c;提供定制化服务。这一计划被视为其“星际之门”项目的全球化延伸&#xff0c;以技术合作为核心&#xff0c;覆盖数据中心建设、模型适配与…...

手风琴效果

图示&#xff1a; 目的&#xff1a;这段HTML代码展示了一个简单的图片展示效果。通过使用Flexbox布局&#xff0c;创建了一个包含多个图片的容器&#xff0c;每张图片的宽度默认为120px&#xff0c;并在鼠标悬停时扩展至400px。代码中&#xff0c;图片路径通过JavaScript动态生…...

idea Maven 打包SpringBoot可执行的jar包

背景&#xff1a;当我们需要坐联调测试的时候&#xff0c;需要对接前端同事&#xff0c;则需要打包成jar包直接运行启动服务 需要将项目中的pom文件增加如下代码配置&#xff1a; <build><plugins><plugin><groupId>org.springframework.boot</gr…...

Visual Studio 项目 .gitignore 文件指南

Visual Studio 项目 .gitignore 文件指南 什么是 .gitignore&#xff1f; .gitignore 是一个特殊的文件&#xff0c;用于告诉 Git 哪些文件或文件夹不需要纳入版本控制。这对于 Visual Studio 项目尤其重要&#xff0c;因为 Visual Studio 会生成很多你不需要手动管理的文件。…...

使用ADB命令操作Android的apk/aab包

keystore文件转换jks文件 操作步骤&#xff1a; 步骤1&#xff0c;生成P12文件&#xff1a; keytool -importkeystore -srckeystore [文件名].keystore -srcstoretype JKS -deststoretype PKCS12 -destkeystore [文件名].p12 步骤2&#xff0c;生成jks文件&#xff1a; keytool…...

Ansys 计算刚柔耦合矩阵系数

Ansys 计算刚柔耦合系数矩阵 文章目录 Ansys 计算刚柔耦合系数矩阵卫星的刚柔耦合动力学模型采用 ANSYS 的 APDL 语言的计算方法系统转动惯量的求解方法参考文献 卫星的刚柔耦合动力学模型 柔性航天器的刚柔耦合动力学模型可以表示为 m v ˙ B t r a n η F J ω ˙ ω J…...

原生小程序+springboot+vue医院医患纠纷管理系统的设计与开发(程序+论文+讲解+安装+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 在医疗行业快速发展的当下&#xff0c;医患关系已成为社会各界关注的焦点。近年来&#…...

django扩展练习记录

一、Django 中使用 django-apscheduler 实现定时任务 可以方便地管理周期性任务&#xff08;如每天清理缓存、定时发送邮件等&#xff09; 1. 安装 pip install django-apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple #0.7.02.添加到应用&#xff0c;python m…...

Android Exoplayer多路不同时长音视频混合播放

在上一篇Android Exoplayer 实现多个音视频文件混合播放以及音轨切换中我们提到一个问题&#xff0c;如果视频和音频时长不一致&#xff0c;特别是想混合多个音频和多个视频时就会出问题&#xff0c;无法播放。报错如下&#xff1a; E/ExoPlayerImplInternal(11191): Playback…...

第一章:HTML基石·现实的骨架

教学目标&#xff1a; • 理解 HTML 的整体结构&#xff08;<!DOCTYPE>, <html>,<head>, <body>&#xff09; • 掌握基础标签&#xff08;<h1>, <p>, <a>, <img>, <ul>/<ol>/<li>, <div>, <span&…...

按键精灵ios脚本新增元素功能助力辅助工具开发(二)

元素节点功能&#xff08;iOSElement&#xff09;​ 在按键精灵 iOS 新版 APP v2.2.0 中&#xff0c;新增了元素节点功能 iOSElement&#xff0c;该功能包含共 15 个函数。这一功能的出现&#xff0c;为开发者在处理 iOS 应用界面元素时提供了更为精准和高效的方式。通过这些函…...

【源码+文档+调试讲解】党员之家服务系统小程序1

摘 要 本毕业设计的内容是设计并且实现一个基于springboot的党员之家服务系统小程序。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;java技术和Tomcat网络信息服务作为应用服务器。党员之家服务系统小程序的功能已基本实现&#xff0c;主要包括首页、个人…...

《ffplay 读线程与解码线程分析:从初始化到 seek 操作,对比视频与音频解码的差异》

1 read-thread 1.1 初始化部分 1.分配. avformat_alloc_context 创建上下⽂ ic avformat_alloc_context();if (!ic) {av_log(NULL, AV_LOG_FATAL, "Could not allocate context.\n");ret AVERROR(ENOMEM);goto fail;}2 ic->interrupt_callback.callback deco…...

AI+可视化:数据呈现的未来形态

当AI生成的图表开始自动“美化”数据&#xff0c;当动态可视化报告能像人类一样“讲故事”&#xff0c;当你的眼球运动直接决定数据呈现方式——数据可视化的未来形态&#xff0c;正在撕裂传统认知。某车企用AI生成的3D可视化方案&#xff0c;让设计师集体失业&#xff1b;某医…...

Spring Boot 整合 Redis 实战

一、整合准备&#xff1a;环境与依赖​ 1. 技术栈说明​ Spring Boot 版本&#xff1a;3.1.2&#xff08;兼容 Java 17&#xff09;​ Redis 服务器&#xff1a;Redis 7.0&#xff08;本地部署或 Docker 容器&#xff09;​ Maven 依赖&#xff1a; <dependency><…...

pdf url 转 图片

背景&#xff1a;vue2.0需要把pdf转成图片&#xff0c;显示在url里面&#xff0c;使用pdfjs-dist来解决 步骤&#xff1a; 1、安装依赖包(我的项目是node12&#xff0c;安装太高版本会报错) npm i pdfjs-dist2.16.105 2、vue代码 <template><div class"main…...

JPG与PDF格式转换器

该插件可实现JPG与PDF格式的互转。 MainForm.Designer.cs using System.Windows.Forms; namespace JpgToPdfConverter {partial class MainForm{private System.ComponentModel.IContainer components null;protected override void Dispose(bool disposing){if (disposing &…...

Kafka 如何保证消息顺序性

文章目录 分区策略轮询随机按 Partition 路由按 key 路由 顺序性保证 分区策略 Kafka 的消息会被生产者发送到分区 Partition中&#xff0c;然后消费者通过获取分区中的消息来完成消费操作。所以Kafka不仅有主题 Topic这个概念&#xff0c;也引入分区 Partition 这个概念来实现…...

C++23 views::zip 和 views::zip_transform (P2321R2) 深入解析

文章目录 一、引言二、C23与Ranges库背景知识2.1 C23概述2.2 Ranges库回顾 三、views::zip 详解3.1 功能与定义3.2 使用场景3.3 示例代码 四、views::zip_transform 详解4.1 功能与定义4.2 使用场景4.3 示例代码 五、views::zip 与 views::zip_transform 的对比5.1 功能差异5.2…...

Starrocks的主键表涉及到的MOR Delete+Insert更新策略

背景 写这个文章的作用主要是做一些总结和梳理&#xff0c;特别是正对大数据场景下的实时写入更新策略 COW 和 MOR 以及 DeleteInsert 的技术策略的演进&#xff0c; 这也适用于其他大数据的计算存储系统。该文章主要参考了Primary Key table. 分析总结 Starrocks 的主键表主…...

【计算机视觉】OpenCV实战项目:基于OpenCV的车牌识别系统深度解析

基于OpenCV的车牌识别系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 图像预处理1) 自适应光照补偿2) 边缘增强 2.2 车牌定位1) 颜色空间筛选2) 形态学操作3) 轮廓分析 2.3 字符分割1) 投影分析2) 连通域筛选 2.4 字符识别 3. 实战部署指南3.1 环境配置3.2 项目代码解析 4.…...

20250513_问题:由于全局Pytorch导致的错误

文章目录 前言问题&#xff1a;由于全局Pytorch导致的错误找到问题(1)找到问题(2) 总结 前言 问题&#xff1a;由于全局Pytorch导致的错误 代码报错显示无法使用CUDA AttributeError: module ‘torch._C’ has no attribute ‘_cuda_setDevice’ 找到问题(1) import torch pri…...

flinksql实践(从kafka读数据)

本案例是基于flinksql实现的&#xff0c;将逐步实现从kafka读写数据&#xff0c;聚合查询&#xff0c;关联维表(外部系统)等。 环境准备 首先确保电脑已经安装好zookeeper、kafka、flink。本文flink使用单机模式&#xff0c;zookeeper和kafka也使用单机配置。(环境配置部分可以…...

Linux系统:文件系统前言,详解CHSLBA地址

本节重点 理解硬盘的组成结构与工作原理理解柱面、扇区CHS地址进行寻址对整块硬盘的逻辑抽象LBA地址进行寻址LBA与CHS地址的相互转换 一、初识硬盘 1.1 基本概念 硬盘&#xff08;Hard Disk Drive&#xff0c;HDD&#xff09;是一种用于存储和检索数据的计算机硬件设备。它…...

2025年01月10日浙江鑫越系统科技前端面试

目录 vue2 和 vue3 的区别vue 怎么封装组件js 怎么把一个数组置空怎么组件自己调用自己的组件v-bind:attribute 和 v-bind“{attribute}” 的区别var let const 的区别this 指向作用域链闭包原型链事件循环 1. vue2 和 vue3 的区别 Vue 2 和 Vue 3 在多个方面存在区别&#…...

2025.05.11阿里云机考真题算法岗-第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 镜像追踪游戏 问题描述 A先生正在玩一款名为「镜像追踪」的游戏。游戏在一个 n n n...

实景三维建模软件应用场景(众趣科技实景三维建模)

实景三维建模软件应用场景概述 实景三维建模软件&#xff0c;作为数字化时代的重要工具&#xff0c;不仅能够真实、立体、时序化地反映和表达物理世界&#xff0c;还为国家的基础设施建设和数字化发展提供了有力的支撑。 在测绘与地理信息领域&#xff0c;实景三维建模软件是构…...

centos中libc.so.6No such file的解决方式

你在运行安装程序时遇到了以下错误&#xff1a; Configuring the installer for this systems environment...strings: /lib/libc.so.6: No such file 这个错误通常是由于系统中缺少 glibc&#xff08;GNU C Library&#xff09;或其相关文件导致的。glibc 是 Linux 系统中的…...

MapReduce打包运行

1. 编写 MapReduce 程序 首先需要编写 MapReduce 程序&#xff0c;通常包含 Mapper、Reducer 和 Driver 类。例如&#xff0c;一个简单的 WordCount 程序&#xff1a; java import java.io.IOException; import java.util.StringTokenizer;import org.apache.hadoop.conf.Con…...

RustDesk:开源电脑远程控制软件

RustDesk&#xff1a;开源电脑远程控制软件 RustDesk&#xff1a;开源电脑远程控制软件一、RustDesk 简介二、下载教程2.1 桌面版下载2.2 Android 版下载 三、安装教程3.1 桌面版安装 四、功能讲解4.1 远程控制4.2 文件传输4.3 安全可靠4.4 自定义服务器 五、RustDesk技术架构解…...

【Unity】WebGL开发问题汇总

1 前言 主要记录下WebGL开发过程中遇到的各种问题。 2 问题 2.1 中文字体不显示 问题&#xff1a; 经典问题了。将项目打包在WebGL平台后&#xff0c;运行发现所用中文字体都不现实了。 解决办法&#xff1a; 替换Text组件的“字体”。可以将电脑字体复制到项目当中然后替换组…...