E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
01-C&C++
求逆矩阵(
C++
)
求矩阵的逆常见的一般有三种方法(考研常见):待定系数法、高斯-约旦消元法和伴随矩阵求逆矩阵。待定系数法:假设矩阵A:[123456789]\left[\begin{matrix}1&2&3\\4&5&6\\7&8&9\end{matrix}\right]147258369设其逆矩阵为A−1A^{-1}A−1:[a11a12a13a21a22a23a31a32a33]\left[\begin{mat
龙行泽雨
·
2024-02-12 04:44
计算方法
矩阵
c++
线性代数
插值(二)——拉格朗日插值(
C++
)
问题的提出假设只有两个插值点:x0,x1;y0,y1x_0,x_1;y_0,y_1x0,x1;y0,y1,求P1(x)=a0+a1xP_1(x)=a_0+a_1xP1(x)=a0+a1x使得P1(x0)=y0,P1(x1)=y1P_1(x_0)=y_0,P_1(x_1)=y_1P1(x0)=y0,P1(x1)=y1,由此可以得到P1(x)=y0+y1−y0x1−x0(x−x0)=x−x1x0−x1
龙行泽雨
·
2024-02-12 04:44
计算方法
c++
开发语言
线性代数
矩阵
C/
C++
图像处理实验(一)——Mat与数组转换
简介由于曾经做过一些嵌入式的图像处理算法,感觉在单片机上做算法开发和验证非常麻烦,想在PC机上实现后直接移植到单片机即可,所以创建了这个专栏,学习一下图像处理算法。嵌入式的图像处理算法的开发中,图像数据一般都是存储在数组中,而在电脑上常用的图像处理库是OpenCV,其数据存储在Mat类中,故第一步应该实现这两种数据的互转。准备工作安装VisualStudio安装OpenCV数据类型转换嵌入式开发中
龙行泽雨
·
2024-02-12 04:13
嵌入式图像处理
c语言
c++
opencv
stm32
单片机
C/
C++
图像处理实验(二)——图像的二值化
简介图像的二值化可以有效地分割图像主体和背景,提取自己感兴趣的部分。图像二值化有多种方式和形式,最简单的是自己设定阈值,然后根据阈值将对应的像素点赋值为0或者255。有时候为了提高程序的鲁棒性,可以使用图像的平均灰度加上一个偏置作为阈值,又或者是用大津法(OSTU)求出“最佳阈值”后,再加上偏置量作为阈值。在二值化的形式上,可以低于阈值的像素设为黑,高于阈值的设为白,但是也可以根据实际需要反过来设
龙行泽雨
·
2024-02-12 04:13
嵌入式图像处理
c语言
c++
开发语言
stm32
单片机
插值(三)——Newton插值(
C++
)
差商对于一系列互不相等的x0,x1,⋯ ,xnx_0,x_1,\cdots,x_nx0,x1,⋯,xn,有差商定义如下:f[xi,xj]=f(xi)−f(xj)xi−xj(i≠j,i,j=0,1,⋯ ,n)f[x_i,x_j]=\frac{f(x_i)-f(x_j)}{x_i-x_j}(i\neqj,i,j=0,1,\cdots,n)f[xi,xj]=xi−xjf(xi)−f(xj)(i=j,i
龙行泽雨
·
2024-02-12 04:13
计算方法
c++
线性代数
C++
局部变量与全局变量 | 输出局部全局变量
C++
局部变量
C++
局部变量是指:在一个函数内部定义的变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数以外是不能使用这些变量的。
小林C语言
·
2024-02-12 04:04
C++代码基础
c++
编程语言
C++
函数定义
C++
输出有参无参
C++
函数定义可以包括有参和无参两种形式。
贪心的猫
·
2024-02-12 04:34
c++
C++
函数调用与重载
在
C++
中,函数调用是程序中执行功能的一种方式。当你调用一个函数时,程序会跳转到该函数的定义处,执行函数体中的代码,然后返回到调用点。在函数调用中,有几个关键的概念,包括函数声明和定义。
贪心的猫
·
2024-02-12 04:34
c++
C++
局部变量和全局变量剖析
目录1.局部变量2.全局变量3.作用域概念每一个变量都有其有效作用范围,这就是变量的作用域。在作用域以外是不能访问这些变量的。1.局部变量在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数才能使用它们,在此函数以外是不能使用这些变量的。同样,在复合语句中定义的变量只在本复合语句中有效。这些内部变量称为局部变量。如
m0_74786185
·
2024-02-12 04:34
c++
开发语言
C++
局部变量与全局变量
在
C++
中,可以为函数的参数指定默认值。这样做的好处是在调用函数时,如果没有提供对应的参数,那么将会使用默认值。
贪心的猫
·
2024-02-12 04:04
c++
C++
求素数
C++continue语句求100-200之间的素数#includeintmain(){for(intnum=100;num#includestd::stringencrypt(conststd::string&plaintext,intshift){std::stringciphertext="";for(charc:plaintext){if(isalpha(c)){charbase=isup
贪心的猫
·
2024-02-12 04:04
c++
8. 字符串转换整数 (atoi)-LeetCode(Java)
8.字符串转换整数(atoi)题目:8.字符串转换整数(atoi)请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/
C++
中的atoi函数)。
NGC 2237号
·
2024-02-12 04:32
#
力扣
leetcode
算法
java
码蹄集新手村MT1021-MT1030
本专栏分享Java解法(主),c/
c++
,python解法一同记录。
NGC 2237号
·
2024-02-12 04:02
#
码蹄集
java
算法
码蹄集
搜索二维矩阵(
C++
详细解释)DAY7
文章目录1.题目示例提示2.解答思路3.实现代码结果4.总结1.题目给你一个满足下述两条属性的mxn整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target,如果target在矩阵中,返回true;否则,返回false。示例提示m==matrix.lengthn==matrix[i].length1>&matrix,inttarget)
小Q小Q
·
2024-02-12 04:29
C++刷题
leetcode
矩阵
c++
leetcode(二分查找)35.搜索插入位置(
C++
详细解释)DAY6
文章目录1.题目示例提示2.解答思路3.实现代码结果4.总结1.题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。示例示例1:输入:nums=[1,3,5,6],target=5输出:2示例2:输入:nums=[1,3,5,6],target=2输出:1示例3:输入:nums=[1
小Q小Q
·
2024-02-12 04:58
C++刷题
leetcode
c++
算法
C/
C++
获取当前时间(最全方法)
文章目录一、获取当前时间1.使用C语言标准库2.使用VS提供的ATL模板库3.使用WinAPI二、代码解析1.time函数2.localtime函数3.tm结构体4.localtime_s函数5.CTime类6.GetLocalTime函数一、获取当前时间1.使用C语言标准库代码#define_CRT_SECURE_NO_WARNINGS//VS中必须定义,否则报错#include#include
余识-
·
2024-02-12 03:27
C++基础知识分享
c语言
c++
开发语言
C++
基本语法(一)
1、HelloWorld程序结构#includeusingnamespacestd;intmain(){coutusingnamespacestd;enumcolor{blue,red,white};//默认值从0开始intmain(){colorc=red;cout0){fun();num--;}system("pause");return0;}voidfun(){staticintindex=
Fighting_Sir
·
2024-02-12 03:35
Linux: GDB 调试工具
删除断点:禁用断点:编辑重新打开断点:逐过程与逐语句:查看变量/监视功能:常显示:运行至下一个断点:转跳行数:停止运行:概念:LinuxGDB(GNUDebugger)是一个功能强大的调试工具,用于调试C、
C+
明 日 香
·
2024-02-12 03:25
Linux指令知识
Linux
linux
运维
服务器
C++
字符指针和字符串
一、字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char*str="Thisisastring.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明语句:charstring[]="Thisisastring.";此时,string是字符数组,它存放了一个字符
九五一
·
2024-02-12 03:55
C++知识
c++
java
开发语言
C++
: 模板初阶
目录引子:函数模板格式:例子:函数模板的实例化:隐形实例化:让编译器根据实参推演模板参数的实际类型显式实例化:在函数名后的返回值类型函数名(参数列表){}例子:templatevoidSwap(T&left,T&right){Ttemp=left;left=right;right=temp;}注意:typename是用来定义模板参数关键字,也可以使用class切记:不能使用struct代替clas
明 日 香
·
2024-02-12 03:54
C++
c++初阶知识
c++
算法
数据结构
C++
指针合集
C/
C++
指针合集1.指针变量的空间大小指针变量的空间大小是固定值(64位下为8字节,32位下为4字节),跟其指向的数据类型及多级指针无关,与编译平台相关(指针大小由当前CPU运行模式的寻址位数决定)。
九五一
·
2024-02-12 03:54
C++知识
c++
开发语言
C++
全局变量、局部变量和静态变量的说明
全局变量、局部变量和静态变量的说明变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。对变量存储区域的说明:全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。生存期可分为:1、静态生存期:在程序开始前就已经存在并初始化完成,这个变量要等整个程序结束后才销毁;2、动态生存期:程序流程运行到这个位置时才会为这个变量分配内存,程序流程离开这个变量的作用域
九五一
·
2024-02-12 03:54
C++知识
c++
java
开发语言
C++
:类的简单介绍(六)——初始化列表
目录格式:初始化之间的比较:普通初始化的缺点:初始化列表的优势:必须进行初始化的变量1、const修饰的变量2、被&修饰的变量引用3、自定义类型,且没有默认构造函数的成员变量必须走初始化列表小总结:函数体和初始化列表的灵活使用:哪一些操作必须走函数体?1、检查:2、数组的连续赋值:注意事项:坑点/面试题:格式:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中
明 日 香
·
2024-02-12 03:53
C++
类
C++
c++初阶知识
c++
开发语言
初始化列表
初始化
类
构造函数
C++
: const 的 权限放大缩小!
目录概念引用与const关于上述的第一段代码:关于上诉的第二段代码:const使用指针进行权限的放大和缩小:注意事项:const与成员函数const修饰成员函数的规则:概念关于权限的放大和缩小问题,在文件领域讲诉可以理解为,当某个文件具有读取权限时,我们赋予这个文件读写权限,这个过程叫做权限的放大,而反之,当某个文件同时具有读写功能,但是我们限制了它其中的一个功能,这就叫做权限的缩小而将权限放大缩
明 日 香
·
2024-02-12 03:23
C++
c++初阶知识
C++
类
c++
开发语言
const
权限的放大和缩小
引用
指针
成员函数
41. C++static线程安全与初始化顺序
静态变量的初始化线程安全问题
C++
的局部static变量,是预先在静态存储区分配了内存,然后在第一次执行到这里的时候进行初始化。
九五一
·
2024-02-12 03:23
C++知识
c++
java
jvm
黑猴子的家:Scala 算术操作符重载
Scala的算术操作符和Java或者
C++
中的预期效果是一样的valanswer=8*5+2+-*/等操作符和位操作符&|^>>1+2等同于scala>1.+(2)a+b也可以写成a.
黑猴子的家
·
2024-02-12 03:20
【自制
C++
深度学习推理框架】计算图的设计思路
计算图的设计思路什么是计算图在深度学习推理框架中,计算图是一种数据结构,它由算子节点和数据节点组成,在该图中前向传播时数据从输入节点开始流动,经过一层层的计算后输出到输出节点,表示深度学习模型的计算过程。与神经网络架构图类似,计算图也是一种有向图,使用节点来表示操作或变量,并使用边来表示它们之间的依赖关系。不同之处在于,神经网络架构图通常只描述了神经元之间的连接方式,而计算图可以精确地表示深度学习
代码缝合怪
·
2024-02-12 03:16
机器学习+深度学习
深度学习
c++
人工智能
【自制
C++
深度学习推理框架】Layer的设计思路
Layer的设计思路Layer的抽象如果将深度学习中的所有层分为两类,那么肯定是"带权重"的层和"不带权重"的层。基于层的共性,我们定义了一个Layer的基类,提供了一些基本接口,并可以通过继承和多态机制实现不同类型的Layer。具体来说,该类包括以下几个成员函数:构造函数Layer(std::stringlayer_name),用于创建一个Layer对象并设置该层的名称。virtual~Laye
代码缝合怪
·
2024-02-12 03:15
机器学习+深度学习
c++
深度学习
算法
【自制
C++
深度学习推理框架】Tensor模板类的设计思路
Armadillo库是一个
C++
科学计算库,提供了高效的线性代数和矩阵运算。它支持常用矩阵操作、线性系统求解、特征值求解等功能,并且具有简单易用、高效快速、内存占用少等特点。将arm
代码缝合怪
·
2024-02-12 03:45
机器学习+深度学习
深度学习
c++
python
【华为OD机考 统一考试机试C卷】拼接URL(
C++
Java JavaScript Python C语言)
华为OD机考:统一考试C卷+D卷+B卷+A卷目前在考C卷,经过两个月的收集整理,C卷真题已基本整理完毕抽到原题的概率为2/3到3/3,也就是最少抽到两道原题。请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。另外订阅专栏还可以联系笔者开通在线OJ进行刷题,提高刷题效率。真题目录:华为OD机考机试真题目录(C卷+D卷+B卷+A卷)+考点说明专栏:2023华为OD机试(B
算法大师
·
2024-02-12 03:14
华为od
c语言
c++
javascript
java
C++
设计模式之工厂模式
工厂模式是一种创建型设计模式,旨在提供一种创建对象的接口,但允许子类决定实例化哪个类。工厂模式有多种形式,其中最常见的包括简单工厂模式、工厂方法模式和抽象工厂模式。以下是一个简单工厂模式的例子,演示了如何使用工厂方法创建不同类型的产品对象:#include//抽象产品类classProduct{public:virtualvoiddisplay()=0;virtual~Product(){}};/
奋进的大脑袋
·
2024-02-12 03:13
c++
设计模式
什么是算法c语言中,C语言/
C++
算法基本概念
分享编程技能、互联网技术、生活感悟、打造干货分享平台,将总结的技术、心得、经验分享给大家,这里不只限于技术!还有职场心得、生活感悟、以及面经。C语言/C加加算法基本概念1.算法是什么算法:顾名思义,一种计算的方法,在程序设计上,就表现为一组指令序列。为了使得算法有意义,还规定算法必须是有限的和确定的,也就是说算法的执行时间有限、执行的过程是确定的。比如我们写了代码inta=10;//a,b为输入数
李德哲
·
2024-02-12 03:42
什么是算法c语言中
【
C++
】String
简介:String实际是一个类,类中封装了许多成员方法使用:添加头文件:#include初始化:Strings1("hello");//使用字符串进行初始化Strings2(s1);//使用一个String对象初始化另一个String对象赋值:Strings1='a';//将字符赋给字符串Strings2="helloworld";//使用char*类型字符串赋给当前字符串Strings3=s2;
嗯诺
·
2024-02-12 02:59
#函数
c++
开发语言
并行计算工具 MPI 简单教程
在本教程中,我们将使用英特尔
C++
编译器、GCC、IntelMPI和OpenMPI用
C++
创建多处理器“helloworld”程序。本教程假设用户具有Linux终端和
C++
经验。
疯狂的泰码君
·
2024-02-12 02:54
MPI
并行计算
MPI
【
C++
第二阶段】赋值运算符重载
你好你好!以下内容仅为当前认识,可能有不足之处,欢迎讨论!文章目录赋值运算符重载赋值运算符重载实验①,还没有对析构运算符重载时#include#includeusingnamespacestd;classPerson{friendvoidtest_0210_0();public:Person();Person(intage);private:int*person_age;};Person::Per
字助之_
·
2024-02-12 01:40
C++学习与回顾
c++
java
开发语言
【
C++
第二阶段】运算符重载-【+】【cout】【++|--】
文章目录运算符重载加法运算符重载重载左移运算符递增|减运算符重载运算符重载加法运算符重载What普通的加减乘除,只能应付
C++
中已给定的数据类型的运算,对其重载,使得满足多种多样的运算。
字助之_
·
2024-02-12 01:10
C++学习与回顾
c++
java
算法
【
C++
第二阶段】友元
你好你好!以下内容仅为当前认识,可能有不足之处,欢迎讨论!文章目录全局函数做友元类对象做友元成员函数做友元全局函数做友元What在全局函数中,可以访问类中private权限下的成员属性。How在类对象中,通过在类名第一行写入friendvoidGlobalFunction();,声明此全局函数为类友元,即可在全局函数调用时访问类中成员属性。Why规定程序中,有些私有属性也想让类外一些函数或者类进行
字助之_
·
2024-02-12 01:09
C++学习与回顾
c++
开发语言
More Effective
C++
条款一
条款一:指针与引用的区别指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声
zhc
·
2024-02-12 01:06
c++
string
测试
vector
编译器
null
More Effective
C++
条款07:千万不要重载&&,||和,操作符
C++
对于“真假表达式”采用所谓的骤死式评估方式。意思是一单该表达式的真假值确定,即使表达式中还有部分尚未检验,整个评估工作仍高结束。举例:char*p;...if((p!
娱乐界祖师爷
·
2024-02-12 00:05
More
Effective
C++
c++
开发语言
More Effective
C++
条款08:了解各种不同意义的new和delete
当你写string*ps=newstring(“Handsup!”)时,你所使用的new是所谓的newoperator,它其实干了两件事:一、分配足够的内存(实际大小是大于所创建的对象大小)二、调用对象构造函数,为刚才分配的内存对象设定初值。newoperator永远干这两件事,无论如何你不能改变其行为。上面的那段代码大约反映以下的行为:void*mem=operatornew(sizeof(st
娱乐界祖师爷
·
2024-02-12 00:05
More
Effective
C++
c++
开发语言
More Effective
C++
条款13:以引用方式捕获异常
写一个catch子句时,你必须指明异常对象如何被传递到这个子句来。可以选择通过指针、值、引用方式。指针效率最高,因为抛出指针是唯一在搬移“异常相关信息”时不需要复制对象的一种做法。voidsomeFunction(){staticexceptionex;...throw&ex;...}voiddoSomething(){try{someFunction();}catch(exception*ex)
娱乐界祖师爷
·
2024-02-12 00:05
More
Effective
C++
c++
开发语言
More Effective
C++
条款04:非必要不提供默认构造函数
所谓默认构造函数,就是不给任何变量,就可以给调用(无参或参数为默认值)。基本准则:凡可以“合理地从无到有生成对象”的类,都应该包含默认构造函数,而“必须有某些外来信息才能生成对象”的类,则不必拥有默认构造函数。但如果类缺乏一个默认构造函数,当你使用这个类时便会有某些限制。考虑下面这个针对公司仪器而设计的class,在其中,仪器识别码是一定得有的一个构造参数:classEquipmentPiece{
娱乐界祖师爷
·
2024-02-12 00:35
More
Effective
C++
c++
开发语言
More Effective
C++
:1、基础议题
几乎最简单的
C++
程序也会用到其中大部份特性,而许多程序会用到上述所有特性。尽管你可能已经十分熟悉语言的这一部份,有时候它们还是会令你吃惊。
我是一片小树叶
·
2024-02-12 00:34
C++
基础构建
More
Effective
C++
More Effective
C++
第一讲,指针和引用
1.指针和引用的区别相同点:指针和引用都是让你间接引用其它对象。不同点:1.引用:声明时必须初始化,并且以后不能改变(即不能给引用重新赋值),但是指定的对象其内容可以改变。指针:声明可以不初始化,并且可以被重新赋值以指向另一个不同的对象2.从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域。3.不存在指向空值的引用这个事实。4.引用比指针更安全。由于不存在空引用,并且引用一旦被初始
爱抖腿的小松鼠
·
2024-02-12 00:34
more
efficive
c++
c++
visual
studio
开发语言
数据结构
More Effective
C++
条款03:绝对不要以多态方式处理数组
classBST{...};classBalancedBST:publicBST{...};现在考虑有个函数,用来打印BSTs数组中的每一个BSTs数组中的每一个BST的内容:voidprintBSTArray(ostream&s,constBSTarray[],intnumElements){for(inti=0;i(array)=0;--i){array[i].BST::~BST();//调用
娱乐界祖师爷
·
2024-02-12 00:34
More
Effective
C++
c++
蓝桥杯
开发语言
More effective
C++
之基础议题(chapter1)
大纲:1、指针和引用2、类型转换3、数组与多态的不可混用4、默认构造函数指针和引用相同点:间接地来使用对象异同点:指针可以指向空对象引用必须指向非空对象,要求做初始化可以改变指针指向,不可改变引用指向抉择:重载运算符、必须指向非空对象、不想改变其指向,使用引用;实际上,大多数的场景,我们需要改变指向,相对而言,指针可能适用的场景更多。此外,关于使用指针、引用的效率问题:由于引用不可指向空对象,因此
极致 for 简单
·
2024-02-12 00:03
more
effective
C++
c++
【More Effective
C++
】条款5:警惕隐式类型转换
隐式类型转换操作符,可能导致错误的函数调用,应该提供显示的函数调用classRational{public:Rational(intnumerator=0,intdenominator=1):_numerator(numerator),_denominator(denominator){}//隐式类型转换操作符//operatordouble()const{//returndouble(_nume
杨主任o_o
·
2024-02-12 00:33
More
Effective
C++
c++
开发语言
【More Effective
C++
】条款2:使用
C++
转型操作符
没有类型安全检查:允许将任何指针转换为其他类型指针,可能导致未定义行为的错误;难以识别和维护:语法(type)expression或type(expression)在代码中难以被快速识别;为了解决上述问题,推荐使用
C+
杨主任o_o
·
2024-02-12 00:03
More
Effective
C++
c++
开发语言
【More Effective
C++
】条款3:不以多态的方式处理数组
注意:通过array[i]操作本质上是*(array+i),通过父类指针操作子类,会出现未定义的行为classBST{public:friendstd::ostream&operator(array)<<"\n";delete[]array;}intmain(){//BSTBSTArray[10];//printBSTArray(std::cout,BSTArray,10);//std::cout
杨主任o_o
·
2024-02-12 00:03
More
Effective
C++
c++
算法
开发语言
【More Effective
C++
】条款1:指针和引用区别
区别:引用定义必须初始化,不能为null,意味着不需要测试有效性;且不能改变指向;实现一个操作符重载,只能用引用实现结论:除了上述情况,应该优先使用指针实现#ifndef__ITEM_H__#define__ITEM_H__#include#include//用于抛出异常voidprintDouble(constdouble&rd){std::coutclassMyVector{public:My
杨主任o_o
·
2024-02-12 00:02
More
Effective
C++
c++
上一页
45
46
47
48
49
50
51
52
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他