1.请教这个网站的码下CSS问题,为什么查看不到CSS源文件!码下
2.CANN训练营笔记Atlas 200I DK A2体验手写数字识别模型训练&推理
3.c++he javaçå·®å«ï¼
4.UE4游戏客户端开发进阶学习指南
5.编译器龙书虎书鲸书基本抽象概念
请教这个网站的码下CSS问题,为什么查看不到CSS源文件!码下
很简单他写的码下css地址是相对地址
是不全的css地址
我先解释下他地址的意思
你就会明白怎么看了
<link href="../css/index.css" rel="stylesheet" type="text/css" />
这是你给的代码上的css地址
../css/index.css这是链接地址
没看前面部分变..了么,说明用的是相对地址
那..又代表什么含义呢
这地址的意思是,..表示和你现在读取的页面地址是一样的,也就是相对现在的页面地址路径后还多/css/index.css这么对
打个比方,你读取的页面地址是
http://www.tmcollege.org/
这个页面源代码css地址为css/style.css
那么他的地址应该是http://www.tmcollege.org/css/style.css
要是页面源代码地址是../css/style.css
说明他的上级还有文件夹,意思和css/style.css是一样的,只是书写的规范而已
我上面例子css上已经没有更高一级的文件夹了
所以可以不用写../
明白么?不明白,可以密我,问我
当然要设满意答案哦
CANN训练营笔记Atlas I DK A2体验手写数字识别模型训练&推理
在本次CANN训练营中,我们对华为Atals I DK A2开发板进行了详细的码下毕业系统源码设计探索,该板子配备有4GB内存和Ascend B4 NPU,码下运行的码下是CANN 7.0环境。
首先,码下为了顺利进行开发,码下我们需要下载预编译的码下torch_npu,并安装PyTorch 2.1.0和torchvision 0..0。码下接着,码下配置环境变量,码下确保系统可以识别所需的码下库和文件。Ubuntu系统和欧拉系统下的安装步骤有所不同,例如,需要将opencv的头文件链接到系统默认路径。
对于ACLLite库,我们采取源码安装方式,确保动态库的独立站源码wrro识别,并在LD.so.conf.d下添加ffmpeg.conf配置。同时,设置ffmpeg的安装路径和环境变量。接着,克隆ACLLite代码仓库并安装必要的依赖。
进入模型训练阶段,我们调整环境变量来减少算子编译时的内存占用,然后运行训练脚本来启动训练过程。在训练结束后,我们生成了mnist.pt模型,并将其转换为mnist.onnx模型,以便进行在线推理。
在线推理阶段,我们使用训练得到的模型对测试进行识别。测试展示了一次实际的推理过程,其结果直观地展示了模型的性能。
对于离线推理,我们从PyTorch框架导入ResNet模型,并转换为升腾AI处理器能识别的格式。提供了下载模型和转换命令,tt语音类似源码只需简单拷贝执行。将在线推理的mnist.onnx模型复制到model目录后,我们配置AIPP,进行模型转换,然后编译样例源码并运行,得到最终的推理结果。
c++he javaçå·®å«ï¼
Javaç¨åºä¸çæ¯ä¸ªåéè¦ä¹æ¯åºæ¬æ°æ®ç±»åï¼boolean, char, byte, short, int, long, float, doubleï¼ï¼è¦ä¹æ¯å¯¹å¯¹è±¡çå¼ç¨
C++æ许å¤ç§åºæ¬ç±»åï¼é¢å¤è¿æstruct, union, enum, æ°ç»åæéï¼C++æéå¯ä»¥æå对象ï¼ä¹å¯ä»¥ä¸æå对象
Java没ææ举ãèåç±»åï¼å 为Java认为没æå¿ è¦ãå°å¯æå¯æ çè¯è¨å ç´ å»ææ¯Java对C/C++ååºçä¸å¤§æ¹åï¼å æ¤ï¼æ®é认为Javaè¾C++æ´è½»ä¾¿ï¼æ´ç²¾ç®
Javaéç¨Unicodeå符éï¼C++é常ç¨ASCIIå符éãä½ASCIIæ¯Unicodeçåéï¼å¯¹äºä¹ æ¯äºASCIIçç¨åºåæè§ä¸å°åºå«
Javaä¸çbooleanç±»åä¸è½è½¬æ¢æå ¶ä»ç±»åï¼åä¹äº¦ç¶ãC++æè¿å¼è¿äºboolç±»åï¼ä»£è¡¨å¸å°ç±»åï¼æ´åä¹ä½ä¸ºé»è¾å¤æ
模æ¿æ¯ä¸ç§âæ³åç¼ç¨ææ³âï¼å®æå«äºâé¢å对象ç¼ç¨ææ³âãC++å¨å¾å¤§ç¨åº¦ä¸å·²ç»æ¯æäºè¿ç§æ°åç¼ç¨æ¹æ³ï¼ç¹å«æ¯STLçåºç°
Javaç®åä»æªæ¯ææ³åç¼ç¨ï¼ä¸è¿æ®è¯´Sunå ¬å¸æå¨Javaä¸å¼å ¥æ¨¡æ¿ç计å
C++æ¯æâè¿ç®ç¬¦çéè½½âï¼è¿æ¯å®çä¸ä¸ªå¾éè¦çå¤æç¹å¾ï¼æ¯æ°æ®æ½è±¡åæ³åç¼ç¨çå©å¨ãå®å 许ç´æ¥å¯¹å¯¹è±¡è¿è¡ååè¿ç®ï¼æ£ååºæ¬æ°æ®ç±»åé£æ ·
Javaä¸æ¯æè¿ç§å¤ææºå¶ï¼ä¹æ¯ä¸ºéä½å¤ææ§
两ç§è¯è¨é½æ¯ææ¹æ³éè½½(overloading)
å¨C++ä¸ï¼ä¸ºäºå 许è¿è¡æ¶å¨æå³å®åªä¸ªå½æ°è¢«è°ç¨ï¼ä¸ä¸ªå½æ°å¿ é¡»ç¨virtual修饰ãvirtualå ³é®å被èªå¨ç»§æ¿ï¼ç¨ä»¥æ¯æå¤æ
å¡æ¯æ²¡æç¨virtual修饰çæåå½æ°ï¼å æ¬staticï¼é½æ¯éæç»å®çï¼å³å¨ç¼è¯æ¶å³å®è°ç¨åªä¸ªçæ¬
èå¨Javaä¸ï¼é¤äºstaticãfinalãprivateæ¯éæç»å®ä»¥å¤ï¼æææ¹æ³ä¸å¾æå¨æç»å®å¤ç
C++ä¸æâæ·è´æé å½æ°âçæ¦å¿µï¼å¨ä¸ç§æ åµä¸ï¼èªå¨è°ç¨å®
ç¨ä¸ä¸ªå¯¹è±¡åå§åå¦ä¸å¯¹è±¡
对象ä½å®åè¿è¡å½æ°è°ç¨
对象ä½å½æ°çè¿åå¼
é常ï¼å½ä¸ä¸ªå¯¹è±¡éè¦åâæ·±æ·è´â(é±è½ï¼ãC++ç¨åºè®¾è®¡æç¨ã)æ¶ï¼æ们éè¦ä¸ºå®äºå å®ä¹âæ·è´æé å½æ°âãâèµå¼è¿ç®ç¬¦çéè½½å½æ°âåâææå½æ°âï¼å¦åç¼è¯å¨å°ä»¥âæä½copyâçå½¢å¼èªå¨çæç¸åºç缺çå½æ°ãåè¥ç±»ä¸å«ææéæåæå¼ç¨æåï¼é£ä¹è¿ä¸ä¸ªé»è®¤çå½æ°å°±éå«äºé误
Javaå没æè¿ç§è¯æ³ç»æåè¯ä¹é»è¾
C++æ¯æinlineå½æ°ï¼å¯ä»¥é¿å å½æ°çå æ è°ç¨ï¼æé«è¿è¡æç
Javaæ è¿ç§è¯ä¹
C++ä¸ï¼æé å½æ°çåå§åå表æ¯è¿æ ·ä½¿ç¨çï¼é¦å æ继æ¿é¡ºåºè°ç¨åºç±»çæé å½æ°æé åºç±»å¯¹è±¡ï¼ç¶åæ声æ顺åºè°ç¨æå对象çæé å½æ°æé æå对象ï¼æå对å表ä¸åºç°çæååéååå§å
Javaä¸éç¨åå§åå表è¿ç§æé æºå¶
å®ä»¬çæé 顺åºåºæ¬ä¸è´ï¼
éæåéåå§å
éæåå§ååï¼Javaï¼
è°ç¨åºç±»çæé å½æ°æé åºç±»å¯¹è±¡
å®ä¾åéçåå§å
æé å½æ°çå ¶ä½é¨å
Java使ç¨abstractå ³é®å修饰æ½è±¡æ¹æ³ææ½è±¡ç±»
C++ç对çè¯æ³æ¯â纯èå½æ°âåâæ½è±¡ç±»â
两è é½ä½¿ç¨æ½è±¡ç±»ä½ä¸ºç»§æ¿å±æ¬¡ä¸çåºç±»ï¼æä¾ä¸è¬æ¦å¿µï¼ç±åç±»å®ç°å ¶æ½è±¡æ¹æ³ï¼ä¸æ½è±¡ç±»é½ä¸è½è¢«ç´æ¥å®ä¾å为对象
Javaä¸æfinalå ³é®åï¼ä¿®é¥°ç±»ãæ¹æ³æåé
finalç±»ä¸è½è¢«ç»§æ¿
finalæ¹æ³ä¸è½è¢«åç±»è¦ç
finalåéå°±æ¯å¸¸é
C++ä¸æ²¡æè¿ä¸ªå ³é®åï¼å¸¸éå¯ä»¥ä½¿ç¨constæ#defineå®ä¹
constè¿å¯ä»¥ä¿®é¥°æåå½æ°ï¼å³â常æåå½æ°âï¼å½ä¸ä¸ªconstæåå½æ°ä¿®æ¹æåæ°æ®ï¼æè°ç¨éconstæåå½æ°æ¶ï¼ç¼è¯å¨ä¼æ¥é
æ们åºå°ä¸ä¿®æ¹æåæ°æ®çå½æ°å£°æ为const
JavaåC++ä¸çstaticå ³é®åè¯æ³åè¯ä¹åºæ¬ç¸å
staticæååéåå«ç±»åéï¼è¢«ç±»çææå¯¹è±¡å ±äº«
A::x (C++)ï¼å¿ é¡»å¨ç±»ä½å¤åå§å
A.x (Java)ï¼å¿ é¡»å¨ç±»ä½å åå§å
staticæåæ¹æ³åå«ç±»æ¹æ³ï¼è®¿é®staticåé
A::f( ) (C++)
A.f( ) (Java)
两è é½æå é¨ç±»åå±é¨ç±»çè¯æ³åè¯ä¹
Javaä¸æ²¡æåå å½æ°ååå ç±»çæ¦å¿µï¼ä¸¥æ ¼æ¯æå°è£ ï¼ä¸å 许å¤é¨æ¹æ³è®¿é®ç±»çç§ææå
èC++æ¯æfriendå ³é®åï¼å 许å¤é¨æ¹æ³è®¿é®ç±»çç§ææåï¼å æ¤ä¸æ¯ä¸ç§çº¯é¢å对象çç¼ç¨è¯è¨
Javaä¸ç±»æinterfaceå¯ä»¥ç¨public修饰ï¼ä¹å¯ä»¥ä¸ä¿®é¥°ï¼èC++ç±»ä¸è½ä¿®é¥°
ä¸ç§è®¿é®æéçè¯ä¹ç¸åï¼è¯æ³ç¥æå·®å«
C++ä¸è¿æ继æ¿æé修饰符ï¼Javaå没æ
class A: protected B, public C (C++)
class A extends B (Java)
Javaæsuperå ³é®åï¼æ代ç¶ç±»å¯¹è±¡ï¼é常被ç¨äºè°ç¨ç¶ç±»çæé æ¹æ³æä¸è¬æ¹æ³
C++å没æsuperå ³é®å
两è é½æthisï¼æ代å½å对象
Javaæpackageçæ¦å¿µï¼å¯ä»¥å°ç±»ç»ç»èµ·æ¥ï¼ä¾¿äºæå åé¨ç½²ï¼ä¹æå©äºç±»çå®å ¨ãC++没æè¿ä¸ªæ¦å¿µï¼ä¸ä¸ªç±»å¯ä»¥è¢«ä»»æ类访é®
Java appletå¯ä»¥è¢«åµå ¥HTMLææ¡£ä¸ï¼ç¶åç±Webæµè§å¨ä¸è½½åæ§è¡
Java APIæ对ç½ç»é讯çç¹å«æ¯æ
C++åæ å ç½®ç½ç»åè½
C++ç¨åºåå¿ é¡»æ¾å¼å°å®ç°å¨æå å管çï¼å¨ææå½æ°ä¸ç¨deleteè¿ç®ç¬¦æfree( )å½æ°éæ¾å¯¹è±¡åå ¶ä»å¨æåé çæ°æ®ç©ºé´ï¼å¦åä¼é æâå åæ³é²â
èå¨Javaä¸ï¼åå¾æ¶éæ¯èªå¨çãå½å¯¹è±¡çæåä¸ä¸ªå¼ç¨åé被éæ¾æï¼è¿ä¸ªå¯¹è±¡å°±æ为åå¾æ¶éå¨çåé对象äº
å æ¤Javaä¸æ¯æææå½æ°
finalize( )æ¹æ³ä¸»è¦è¢«ç¨æ¥éæ¾å åæå¼çéå åèµæºï¼å¦æ件å¥æ
Javaæºä»£ç 被ç¼è¯æåèç ï¼.classæ件ï¼ï¼åèç æ¯ä¸ç§åªæJVMæè½è¯å«çäºè¿å¶ä½çº§ä»£ç ï¼å®ä¸å ·ä½çå¤çå¨æ å ³ï¼è¦ç±å®è£ å¨OSä¹ä¸çJVM解éæ§è¡ï¼è½¬æ¢æç¸åºå¹³å°çæºå¨ç ï¼å æ¤Javaæ¯ä½ç³»ç»æä¸ç«å跨平å°ç
èC++ç´æ¥è¢«ç¼è¯æåºå±å¹³å°çäºè¿å¶æºå¨ç ï¼ç±CPUæ§è¡ï¼æ¯å¹³å°ç¸å ³ç
å æ¤ï¼å½è§£éæ§è¡æ¶ï¼Javaç¨åºé度æ´æ ¢
Javaè¯è¨æ¯æå¤çº¿ç¨ï¼å 许并å线ç¨çåæ¥ä¸äºæ¥æä½
C++å没æè¿ç§å å¨æºå¶
UE4游戏客户端开发进阶学习指南
UE4游戏客户端开发的进阶学习指南已经更新,适合有一定基础的读者。本文将引导你深入学习,提供精心筛选的学习资源,分为必修和选修两部分。必修部分包括官方文档的编程与脚本编写、UProperty关键字全说明、GamePlay架构系列和骨骼网格动画等,这些都是开发的基础和核心内容。选修部分涵盖了蓝图开发、C++编程、Gameplay Ability System (GAS)、动画、UI、thinkPHP在线教学源码AI、网络架构以及编辑器扩展等进阶内容,适合根据个人兴趣和项目需求进行选择。
首先,理解UE4的整体架构是关键,官方的引擎架构图能帮助你建立框架认知。接下来,深入学习编程和蓝图开发,理解UObject类型系统,将有助于你构建游戏玩法。GamePlay模块教你如何运用GAS实现各种功能,如游戏阶段切换。动画部分,从官方文档开始,ALS高级运动系统是核心,选修内容涉及过场动画和底层源码解析。UI开发中,UMG控件、Slate和动态创建动画是基础,根据需求选择更深入的c语言源码定制内容。
AI部分,从行为树和感知模块入手,选修内容包括行为树源码和寻路算法。网络部分,官方文档和网络同步原理是必修,ReplicationGraph插件对于大世界场景尤为重要。编辑器扩展和渲染视觉效果则适合选修学习,如Lyra工程和GameFeature框架提供了UE5新特性的学习机会。
记住,每个模块的资料都是为了帮助你提升UE4客户端开发的技能,根据实际情况选择适合的路径,持续提升你的开发能力。作者的个人博客资源供你参考和深入学习。
编译器龙书虎书鲸书基本抽象概念
在编译原理的世界里,三本堪称经典的著作犹如璀璨明珠:龙书(Aho, Sethi, Ullman合著的《编译原理技术和工具》)、虎书(Appel和Palsberg合作的《现代编译器实现:C语言版》),以及被称为“鲸书”的神秘巨著(未提及具体书名)。龙书是编译器领域的基石,涵盖了词法分析、语法分析等核心内容,虽早期版本存在一些过时技术,但后期修订版不断扩展新知识。虎书则紧跟时代步伐,融合了数据流分析等现代元素,特别适合教学,不仅有C语言版本,还有Java和ML版本,详细内容可通过参考链接获取。
深入研究现代商业编译器的关键问题,学生们通过学习基础概念,为后续深入探索奠定基础。推荐必读的《现代编译原理:C语言描述》由Steven S. Muchnick撰写,是虎书的升级版。而“鲸书”则为进阶学习者量身打造,探讨高级编译器设计与实现,涵盖了抽象层次的深入转换,如从高级语言到机器代码的优化过程,分为基础抽象、数据模型、编程语言语义和算法效率等几个核心领域。
基础抽象如同Java接口,它不仅包含操作的名称,还承载了预期的功能含义。这些抽象可以分为两类:一类是常见的操作,如字典和堆栈,提供多种实现;另一类是广泛应用于组件化的概念,如树和图。在计算思维中,抽象是灵魂,如图抽象中的“查找相邻节点”,它在图灵完备的语言中嵌入,类似于面向对象的类方法,但底层实现则更为具体,涉及有限自动机、解析器等与机器模型紧密相连的技术。声明性抽象,如正则表达式和关系代数,强调的是表达和描述而非实现,对优化性能有高要求;而计算抽象,如通用编程语言和理论模型,如RAM和并行计算模型,尽管可能非图灵完备,但其重要性不言而喻。
举例来说,当需要在声明阶段将标识符插入符号表S时,编译器会根据标识符类型进行检索。字典语言虽然不具备图灵机的复杂性,但它关注的是进程的表示,而非算法设计。字典操作的时间复杂性与集合大小相关,链表实现可能导致O(n)时间,而搜索树如AVL或红黑树则可达到O(log n)。
哈希抽象的核心是全集、哈希函数和哈希桶,操作基于计算哈希值。尽管哈希操作存在最坏情况性能问题,但通常假设平均性能。哈希桶存储结构可根据集合规模采用链表或优化存储,如调整磁盘块大小以适应主存容量。
从词法分析到后端优化,现代编译器分为前后端任务。前端涉及词法分析、句法分析、语义分析和中间代码生成,而共享符号表则用于收集源代码信息。如Lex,通过正则表达式实现标记简化,早期的磁带检索技术效率较低,但Aho-Corasick算法通过一次遍历查找多个关键字,提高了效率。句法分析器生成器基于正则表达式,产生确定性有限自动机,确保语法的有效性。
2.1.1 Lex的升级:Aho-Corasick算法通过集成多个正则表达式集合,显著提升了关键字检索的效率。
2.1.2 Lex设计关注交互复杂性,区分标识符与控制流关键字,避免混淆。
2.1.3 懒惰评估的DFA(确定性有限自动机)技术,优化了正则表达式到DFA的转换,为grep等工具的性能提升做出了贡献。
继续深入,语法分析构建了语言的结构,如表达式树。上下文无关文法(CFG)描述编程语言的句法规则,LR(k)分析法通过一次左到右扫描,处理复杂语法结构。
编译器研究涉及众多抽象层次,从关系模型在编程语言中的应用,到SQL的抽象和优化,再到分布式计算和量子计算的前沿探索。随着技术的演进,我们期待在编译器领域的知识体系中,不断发掘新的抽象理论,推动计算机科学的边界不断拓宽。
参考资料:[1] [2] [3]2024-11-29 12:31785人浏览
2024-11-29 12:211072人浏览
2024-11-29 11:342389人浏览
2024-11-29 11:191537人浏览
2024-11-29 11:02199人浏览
2024-11-29 10:15559人浏览
1.一种Web端SSH服务webssh2)2.SSH框架总结框架分析+环境搭建+实例源码下载)3.mvc ä½ç¨ å sshä½ç¨ï¼è¯¦ç»è¯´è¯´statusãspr
中国消费者报上海讯(记者 刘浩)1月23日,上海市市场监管局通报全市开展疫情防治相关商品价格监督检查情况,向商户下发《关于疫情防治相关商品的价格提醒告诫函》,促进经营者价格自律,同时组织执法力量,加大
地铁站是公共场所,地铁公司作为管理负责人负有公共安全保障义务。瓶装水“试喝一口”作为一种常见的安检方式是否涉嫌侵权?近日,广州铁路运输中级法院公开了一起相关案件的审理详情。乘客称因试喝自带水致身体不适