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
C++编译过程详解
C++
unordered_map和unordered_set的使用,哈希表的实现
文章目录unordered_map,unorder_set和map,set的差异哈希表的实现概念直接定址法哈希冲突哈希冲突举个例子负载因子将关键字转为整数哈希函数除法散列法/除留余数法哈希冲突的解决方法开放定址法线性探测二次探测开放定址法代码实现哈希表的代码unordered_map,unorder_set和map,set的差异unordered_map,unordered_set在功能方面和ma
英雄不问出处~
·
2025-01-30 13:33
散列表
c++
哈希算法
c语言wchar转化为char_科学网—
c++
中 char*和wchar*之间的互相转换 - 林清莹的博文...
1.问题描述编写程序时通常会面对一些不同的编码格式,例如把wchar*的字符串转换为char*的字符串,有时还需要把char*类型的字符串转换为wchar*类型。下面提供几种解决方案。2.解决方案2.0函数方法//charconverttowchar_twchar_t*char2wchar_t(char*cstr){intlen=MultiByteToWideChar(CP_ACP,0,cstr,
weixin_39605345
·
2025-01-30 13:00
c语言wchar转化为char
Synthesia技术浅析(四):自然语言处理
2.过程模型
详解
2.1文本预处理文本预处理是TTS的第一步,包括分词、标点符号处理、数字和日期格式转换等。分词(
爱研究的小牛
·
2025-01-30 12:28
AIGC—视频
AIGC—虚拟现实
AIGC—自然语言处理
自然语言处理
人工智能
AIGC
UE(UltraEdit) 配置简易C/
C++
编译运行环境
该类型其他帖子EmEditor配置简易C/
C++
编译运行环境_emeditor代码运行-CSDN博客RJTextEd配置简易C/
C++
编译运行环境-CSDN博客这种配置适合ACM竞赛,即要求不使用现代IDE
怜渠客
·
2025-01-30 12:27
Windows
开发技巧
c++
ACM
ThreeJS入门(233):THREE.DirectionalLightHelper 知识
详解
,示例代码
作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,webgl,ThreeJS,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第233篇入门文章文章目录特性构造函数方法`update()`使用示例注意事项
还是大剑师兰特
·
2025-01-30 12:26
#
ThreeJS中文API全解
大剑师
threejs入门
threejs教程
threejs示例
OpenCV中的图像处理函数
详解
在OpenCV中,图像处理函数是实现图像处理和计算机视觉任务的基础。下面将详细介绍六个重要的图像处理函数:二值化函数、自适应二值化函数、腐蚀函数、膨胀函数、仿射变换函数和透视变换函数。一、二值化函数功能二值化函数(cv2.threshold())用于将灰度图像转换为二值图像。二值图像中,每个像素只有两种可能的值(通常是0和255),分别代表黑色和白色。参数src:输入图像,应为灰度图像。thres
Luzem0319
·
2025-01-30 12:55
opencv
图像处理
人工智能
C++
游戏开发深度解析
引言在本篇文章中,我们将深入探讨
C++
在游戏开发中的应用,包括内存管理、面向对象编程(OOP)、模板使用等,并通过实际代码示例来帮助理解。
python算法(魔法师版)
·
2025-01-30 12:24
c
c++
开发语言
【c语言】【
c++
】for循环对比
C++
中的for(constauto&pair:anagramMap)是基于**范围-basedforloop(范围循环)**的语法,主要用于遍历容器或序列,和C语言中的传统for循环相比,差异在语法、
吃掉你也没关系吧
·
2025-01-30 12:53
数据结构与算法
c语言
c++
C++
语言之 for 语句
我们经常会遇到很多重复的、有规律的运算,这就需要使用循环结构。下面介绍循环结构的一种——for语句。目录1.格式1.1格式一1.2格式二2.执行过程3.例题3.1代码1.格式如果主体中只有单个语句的话,花括号可以省略。(如格式一)1.1格式一for(控制变量初始化表达式;条件表达式;增量表达式)语句1;1.2格式二for(控制变量初始化表达式;条件表达式;增量表达式){语句1;语句2;······
冰 焰 狼
·
2025-01-30 12:53
C++语言
c++
开发语言
DM数据库体系结构
详解
数据库体系结构分成四个部分,分别是DM逻辑结构,DM物理存储结构,DM内存结构,管理DM线程。DM逻辑结构:1.DM数据库和实例的联系与区别(1)DM数据库指的是磁盘上存放在DM数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。(2)实例一般是由一组正在运行的DM后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作DM数据库的一种手段,是用来访问数据库的内
weixin_46474599
·
2025-01-30 12:53
达梦数据库
FPGA实现带阻滤波器:代码与技术要点
详解
本文还有配套的精品资源,点击获取简介:在电子工程领域,FPGA技术被广泛应用于数字信号处理中,能够实现高度定制化和高效的带阻滤波器。本资料将通过实例代码深入讲解带阻滤波器在FPGA上的设计与实现,涵盖滤波器结构、设计、系数计算、编程语言选择、IP核封装、时序优化、仿真验证和硬件调试等多个关键知识点。1.FPGA与数字信号处理数字信号处理(DSP)是现代通信和电子系统的核心,而现场可编程门阵列(FP
weixin_42601702
·
2025-01-30 12:51
不要再这样编写 async/await
CSS技巧与案例
详解
vue2与vue3技巧合集VueUse源码解读最开始接触async/await时,很多人都会发出“终于有这个功能了!”的感叹。它的语法清晰、可读性强,用起来直观又顺手。
·
2025-01-30 12:03
前端javascript
华为2024校招AI芯片开发工程师面试题
详解
引言核心关键词华为2024校招AI芯片开发工程师面试题
详解
摘要本文旨在详细解析华为2024校招AI芯片开发工程师的面试题,通过系统的分析,帮助读者深入了解AI芯片的基础知识、设计原理以及面试策略。
AI天才研究院
·
2025-01-30 12:20
ChatGPT
AI大模型企业级应用开发实战
大数据AI人工智能
大厂Offer收割机
面试题
简历
程序员读书
硅基计算
碳基计算
认知计算
生物计算
深度学习
神经网络
大数据
AIGC
AGI
LLM
Java
Python
架构设计
Agent
程序员实现财富自由
C++
的for循环
在
C++
中,for循环是一种非常常用的控制结构,用于重复执行一段代码。for循环特别适合于已知迭代次数的情况。以下是for循环的详细讲解,包括其语法、用法和一些常见的应用场景。
qq_51372804
·
2025-01-30 11:48
C++语法
c++
开发语言
Next.js 高级缓存策略分析
CSS技巧与案例
详解
vue2与vue3技巧合集VueUse源码解读在Next.js中,缓存机制往往是被诟病最多的特性之一。许多开发者对其工作方式并不满意。
·
2025-01-30 11:32
C++
之for循环
>>>>>记录几种常用for循环//循环for(变量类型变量名称:数组)循环内容;for(auto变量名称:数组)循环内容;intstudentid[]{10001,10002,10003,10004,10005};for(intvalue:studentid)std::cout>>>>
黄皮大仙
·
2025-01-30 11:48
C++
c++
C++
— for循环
CCC++—forforfor循环代码譬如让程序输出0–31:累死#includeusingnamespacestd;intmain(){cout<<0<<endl;cout<<1
niu1024
·
2025-01-30 11:48
C++
c++
【Numpy核心编程攻略:Python数据处理、分析
详解
与科学计算】1.24 随机宇宙:生成现实世界数据的艺术
1.24随机宇宙:生成现实世界数据的艺术目录随机宇宙:生成现实世界数据的艺术引言复杂联合分布的采样技巧随机游走的蒙特卡洛实现基于物理规律的生成模型随机数在加密中的应用总结参考文献引言复杂联合分布的采样技巧随机游走的蒙特卡洛实现基于物理规律的生成模型随机数在加密中的应用总结参考文献随机数生成分布采样物理模拟密码学应用多元正态分布随机过程布朗运动流体动力学安全随机数随机性检验1.24.1引言在数据科学
精通代码大仙
·
2025-01-30 09:31
numpy
python
numpy
python
开发语言
MySQL UNION 操作
详解
MySQLUNION操作
详解
引言在数据库操作中,UNION是一个非常重要的概念,它允许我们在一个查询中合并多个SELECT语句的结果集。
lsx202406
·
2025-01-30 09:31
开发语言
Transformer架构原理
详解
:残差连接和层归一化(Residual Connection an
《Transformer架构原理
详解
:残差连接和层归一化(ResidualConnectionandLayerNormalization)》文章关键词Transformer残差连接层归一化自注意力机制序列模型编码器与解码器摘要本文将深入解析
AI天才研究院
·
2025-01-30 08:26
AI大模型企业级应用开发实战
Python实战
大数据AI人工智能
java
python
javascript
kotlin
golang
架构
人工智能
大厂程序员
硅基计算
碳基计算
认知计算
生物计算
深度学习
神经网络
大数据
AIGC
AGI
LLM
系统架构设计
软件哲学
Agent
程序员实现财富自由
C#使用实体类Entity Framework Core操作mysql入门:从数据库反向生成模型2 处理连接字符串
这些代码大部分以Linux为目标但部分代码是纯
C++
的,可以在任何平台上使用。
初级代码游戏
·
2025-01-30 08:56
dotnet和C#
数据库
mysql
EntityFramework
【云原生】Docker搭建开源翻译组件Deepl使用
详解
目录一、前言二、微服务项目使用翻译组件的场景2.1多语言用户界面2.2业务逻辑中的翻译需求2.3满足实时通信的要求2.4内容管理系统2.5个性化推荐系统2.6日志和监控三、开源类翻译组件解决方案3.1国内翻译组件方案汇总3.1.1百度翻译3.1.2腾讯翻译3.1.3阿里翻译(通用版)3.1.4华为翻译3.1.5小牛翻译3.1.6有道翻译3.1.7火山翻译3.1.8讯飞翻译3.2国外翻译组件方案汇总
小码农叔叔
·
2025-01-30 08:26
linux与容器实战
docker部署翻译组件
docker部署deepl
docker搭建deepl
java对接deepl
翻译组件使用
【云原生网关】Higress 从部署到使用
详解
目录二、网关概述2.1什么是云原生网关2.2常见的云原生网关2.2.1Nginx2.2.2ApiSix2.2.3Kong2.2.4ApacheShenyu2.2.5Higress2.2.6Envoy三、higress介绍3.1什么是higress3.2Higress定位3.3Higress内核选择四、Higress搭建过程4.1higress常用部署模式4.2环境准备4.3docker部署higr
小码农叔叔
·
2025-01-30 07:48
网关与限流术
linux与容器实战
docker搭建Higress
Higress搭建
docker部署Higress
Higress使用详解
Higress使用
docker搭建higress
AcWing-789. 数的范围-【二分】【小数二分】
文章目录题目
C++
自定义二分小数二分题目给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。
superkcl2022
·
2025-01-30 06:42
#
AcWing
数据结构
二分法
Rust:高性能与安全并行的编程语言
在许多情况下,C/
C++
这样的系统级编程语言虽然性能强大,但其内存管理的复杂性导致了各种安全漏洞。为了解决这些问题,Rust作为一种新的系统级编程语言进入了人们的视野。
大梦百万秋
·
2025-01-30 06:11
知识学爆
python
开发语言
C语言经典贪心算法之加油站问题(
详解
)
文章目录一、贪心算法二、加油站问题一、贪心算法贪心算法暗示一种不追求最优解,只希望找到较为满意解的方法。贪心算法省去了为找最优解要穷尽所有可能而必须耗费大量时间,因此它一般可以快速得到较为满意的答案。贪心算法常常以当前情况为基础做最优选择,而不考虑各种的整体情况,所以贪心算法不需要回溯。二、加油站问题1、问题一辆汽车加满油后可以行驶n千米,旅途中有若干个加油站(加油站是已经确定好的),为了使沿途加
鸿蒙Next
·
2025-01-30 06:40
C语言算法
算法
c语言
贪心算法
数据结构
程序人生
Rust 中的方法与关联函数
详解
1.方法(Methods)是什么?在Rust里,方法和函数的定义方式很像:都使用fn来声明。都能拥有参数和返回值。都包含一段在被调用时执行的代码逻辑。不同点在于:方法必须定义在某个具体类型(比如struct、enum或者在某个trait对象里)的上下文中。而且方法的第一个参数固定要写成self(可以是self、&self或者&mutself),用来代表调用该方法的具体实例。让我们来看看一个简单示例
Hello.Reader
·
2025-01-30 06:38
rust
rust
服务器
开发语言
【信息系统项目管理师-选择真题】2009上半年综合知识答案和
详解
更多内容请见:备考信息系统项目管理师-专栏介绍和目录文章目录【第1题】【第2~3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题】【第23题】【第24题】【第25题】【第26题】【第27题】【第28题】【第29题】【第30题】【第
数据知道
·
2025-01-30 06:08
信息系统项目管理师(软考高级)
开发语言
软考高级
高项
高项论文
综合知识
信息系统项目管理师
编译dpdk19.08.2中example时一系列报错解决
dpdk19.08
编译过程
全解dpdk介绍问题描述
编译过程
执行Step1报错一解决方式报错二解决方式继续执行Step248的时候报错49没有修改成功输入60退出使用过程执行make报错一解决方式继续make
monGyrate
·
2025-01-30 05:01
linux服务器相关
dpdk
C语言
DPDK
数据平面开发套件
ubuntu
状态模式——
C++
实现
目录1.状态模式简介2.代码示例3.单例状态对象4.状态模式与策略模式的辨析1.状态模式简介状态模式是一种行为型模式。状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。通俗的说就是一个对象在不同的状态下拥有不同的行为。对象可以拥有多个不同的状态,不同状态下调用同一个接口会产生不同的行为。状态模式通过把状态封装成类,可以很好地维护一个对象的不同状态,并且方便地
玉带湖水位记录员
·
2025-01-30 05:29
状态模式
c++
开发语言
华为OD机试D卷 --矩阵匹配--24年OD统一考试(Java & JS & Python & C &
C++
)
文章目录题目描述输入描述输出描述用例题目解析java源码js源码python源码c源码
c++
源码题目描述从一个N*M(N≤M)的矩阵中选出N个数,任意两个数字不能在同一行或同一列,求选出来的N个数中第K
飞码创造者
·
2025-01-30 04:28
最新华为OD机试题库2024
华为od
矩阵
python
javascript
java
c++
c语言
YOLO 目标检测编程
详解
引言目标检测是计算机视觉中的一个重要任务,它旨在识别图像中的对象并定位这些对象的位置。YOLO(YouOnlyLookOnce)是一种流行的目标检测算法,因其速度快且准确度高而广受好评。本文将深入探讨YOLO的原理及其实现方法,并提供一个使用Python和PyTorch的示例代码。项目源码见最下方1.YOLO算法简介YOLO算法的核心思想是将目标检测视为回归问题,而不是传统的分类加定位的两阶段方法
不知名靓仔
·
2025-01-30 04:56
YOLO
目标检测
人工智能
每日一题洛谷P1720 月落乌啼算钱(斐波那契数列)
c++
#include#include#includeusingnamespacestd;intmain(){intn;scanf("%d",&n);doubleq=sqrt(5.0);doubleFn=(pow((1+q)/2,n)-pow((1-q)/2,n))/q;printf("%.2lf",Fn);return0;}
wen__xvn
·
2025-01-30 03:47
洛谷
c++
算法
开发语言
数仓ETL测试
为此,需要用任何编程语言编写代码,如Java,C#,
C++
等。为了避免更多编码和使用库,将通过拖放组件来减少
星月情缘02
·
2025-01-30 03:15
etl
数据仓库
python中cv是什么_python里面cv是什么意思
OpenCV其实就是一堆C和
C++
语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。
weixin_39639568
·
2025-01-30 02:13
python中cv是什么
c语言 random函数,
c++
中的RANDOM()函数怎么使用?
可以解决的方法有两个:可改用
C++
下的rand函数来实现。
C++
标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数。RAND_MAX必须至少为32767。
多行不易
·
2025-01-30 02:13
c语言
random函数
定价策略
详解
常用定价策略简述渗透定价:快速吸引客户,适用于新产品进入市场,但低价可能导致利润率低。撇脂定价:获取高额利润,适用于技术含量高的产品,但高价可能限制市场规模。心理定价:利用客户心理反应,增加购买意愿,但过度使用可能导致客户信任危机。分段定价:满足不同客户群体需求,适用于多层次服务,但需要精确的市场细分。会员定价:增强客户忠诚度,适用于订阅服务,但需确保会员权益的吸引力。捆绑定价:通过组合销售增加客
小小搬运工40
·
2025-01-30 02:12
定价
数据分析
产品运营
数据挖掘
实时美颜与滤镜技术的融合:美颜SDK开发
详解
如今,实时美颜与滤镜技术逐渐成为影像处理领域的热点。为了满足用户对个性化和高质量视觉效果的需求,各类美颜SDK(SoftwareDevelopmentKit,软件开发工具包)应运而生。本篇文章,笔者将详细解析实时美颜与滤镜技术的原理、关键技术以及美颜SDK的开发要点。一、实时美颜与滤镜技术概述实时美颜主要通过图像处理和计算机视觉技术,在不影响拍摄流畅度的前提下,对人脸进行美化处理。滤镜技术则侧重于
美狐美颜sdk
·
2025-01-30 02:41
美颜SDK
直播美颜SDK
第三方美颜SDK
人工智能
计算机视觉
视频美颜SDK
深度学习
美颜SDK
直播美颜sdk
动态规划算法(25.1.27)
0.前置了解:递归思想以及相关题目(
详解
递归思想-CSDN博客)1.动态规划算法基础概念:最简单的例子:斐波那
一位不愿透露姓名的程序猿
·
2025-01-30 02:06
算法
动态规划
Apache STORM工作原理
详解
ApacheStorm是一个分布式实时计算系统,允许用户在集群上运行流式数据处理应用程序。它的核心原理是将流式数据分割成多个小块,每个小块都会被分配给不同的计算节点进行处理,并且处理结果会被发送到下一个节点,直到达到最终结果。以下是ApacheStorm的工作原理:Nimbus是整个集群的控管核心,负责topology的提交、运行状态监控、任务重新分配等工作。zk就是一个管理者,监控者。总体描述:
Neil Parker
·
2025-01-30 01:05
apache
storm
java
【SpringBoot3】面向切面 AspectJ AOP 使用
详解
文章目录一、AspectJ介绍二、简单使用步骤1、引入依赖2、定义一个Aspect3、开启AOP支持三、AOP核心概念四、切点(Pointcut)1.execution2.within3.this&target4.args&@args5.@within&@target&@annotation五、通知(Advice)1.@Before示例:日志记录2.@AfterReturning示例:处理返回值3
m0_74825074
·
2025-01-30 01:04
面试
学习路线
阿里巴巴
python
前端
开发语言
云原生之
详解
(Detailed Explanation of Cloud Native)
什么是云原生简介云原生是一种现代化的软件开发和部署方法,旨在充分利用云计算的优势,提高应用程序的可伸缩性、弹性和可靠性。云原生技术有利于在公有云、私有云和混合云等环境中构建和运行可弹性扩展的应用。一、云原生的概念起源(一)早期的模糊认知在云计算技术刚刚兴起之时,“云原生”这个词汇就如同隐藏在云雾中的神秘宝藏,人们对它仅有一个模糊的概念。它似乎代表着一种与传统应用运行模式截然不同的方式,但具体的
Linux运维老纪
·
2025-01-30 01:01
心怀梦想:踏上云原生之旅
云原生
运维开发
云计算
服务器
网络
devops
golang通过AutoMigrate方法自动创建table
详解
一.AutoMigrate介绍1.介绍在Go语言中,GORM支持Migration特性,支持根据GoStruct结构自动生成对应的表结构,使用GORMORM库的AutoMigrate方法可以自动创建数据库表,确保数据库结构与定义的模型结构一致。AutoMigrate方法非常方便,特别适合在开发阶段进行快速迭代注意:AutoMigrate会创建表、缺失的外键、约束、列和索引出于保护数据的目的,它不会
zhoupenghui168
·
2025-01-30 00:58
golang
#
golang基础
数据库
数据库
GORM
AUTOMigrate
DeepSeek V3 模型微调(SFT)技术
详解
DeepSeekV3模型微调(SFT)技术
详解
目录引言背景知识2.1深度学习与预训练模型2.2微调(Fine-tuning)的概念2.3监督微调(SupervisedFine-tuning,SFT)DeepSeekV3
zhangjiaofa
·
2025-01-30 00:28
大模型
DeepSeek
模型微调
判断ip地址的合法性python_Python判断IP地址合法性的方法
它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/
C++
)
胖厨胡学斌
·
2025-01-30 00:27
AI 集群:Exo 项目
详解
引言随着人工智能技术的迅猛发展,越来越多的人希望在家中运行自己的AI集群。传统的AI集群通常需要昂贵的硬件和复杂的配置,但Exo项目正是为了解决这个问题而诞生的。Exo项目旨在让你利用日常电子设备,轻松搭建一个高效的AI集群。本文将详细介绍Exo项目的特点、安装步骤和实战示例。©ivwdcwso(ID:u012172506)Exo项目特点1.广泛的模型支持Exo支持多种流行的AI模型,包括但不限于
ivwdcwso
·
2025-01-30 00:57
运维
人工智能
AI
Exo
【重生之我在学习C语言指针
详解
】
目录编辑--------------------------------------begin----------------------------------------引言一、指针基础1.1内存地址1.2指针变量1.3指针声明1.4取地址运算符&1.5解引用运算符***二、指针运算2.1指针加减运算2.2指针关系运算三、指针与数组3.1数组名作为指针3.2指针遍历数组四、指针与函数4.1指针
Rhzkp
·
2025-01-30 00:23
c语言
DeepSeek 模型:架构创新与实际应用
详解
DeepSeek模型是近年来在自然语言处理(NLP)领域备受瞩目的开源大规模语言模型系列。其最新版本DeepSeek-V3采用了混合专家(Mixture-of-Experts,MoE)架构,拥有6710亿个参数,每个词元(token)激活370亿个参数。该模型在多项基准测试中表现出色,性能媲美GPT-4和Claude等领先的闭源模型。以下将详细介绍DeepSeek模型的架构、用途,并通过具体案例和
汪子熙
·
2025-01-29 23:52
人工智能
架构
语言模型
人工智能
【编程小白必看】MySQL 时间类型操作秘籍一文全掌握
二、时间类型
详解
1.DATE类型2.TIME类型3.DATETIME类型4.TIMESTAMP类型5.YEAR类型三、日期时间函数1.CURRENT_DATE()和CURRENT_TIME()2.NOW
6个q
·
2025-01-29 23:22
mysql数据库
mysql
adb
数据库
JavaScript系列(49)--游戏引擎实现
详解
JavaScript游戏引擎实现
详解
今天,让我们深入探讨JavaScript的游戏引擎实现。
ᅟᅠ 一进制
·
2025-01-29 22:45
JavaScript
javascript
游戏引擎
开发语言
上一页
35
36
37
38
39
40
41
42
下一页
按字母分类:
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
其他