【LAMMPS学习】八、基础知识(6.2)LAMMPS GitHub 教程
8. 基础知识
此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。
8.1.通用基础知识
8.2. 设置入门
8.3. 分析入门
8.4. 力场入门
8.5. 软件包入门
8.6.操作教程
8.6.1.将 CMake 与 LAMMPS 结合使用
8.6.2. LAMMPS GitHub 教程
作者:Stefan Paquay
本文档描述了如何使用 GitHub 将您对 LAMMPS 所做的更改或添加集成到官方 LAMMPS 发行版中的过程。它使用更新本教程的过程作为示例来描述各个步骤和选项。您需要熟悉 git,并且您可能需要查看 git 书籍来熟悉下面使用的一些更高级的 git 功能。
截至 2016 年秋季,通过 GitHub 上的拉取请求向 LAMMPS 提交贡献是将贡献的功能或改进集成到 LAMMPS 的首选选项,因为它显着减少了 LAMMPS 开发人员所需的工作量。因此,创建拉取请求将增加您的贡献被包含在内的机会,并减少集成完成之前的时间。有关将代码包含到 LAMMPS 中的要求的更多信息,请参阅此页面。
Making an account 开设账户
First of all, you need a GitHub account. This is fairly simple, just go to GitHub and create an account by clicking the “Sign up for GitHub” button. Once your account is created, you can sign in by clicking the button in the top left and filling in your username or e-mail address and password.
首先,你需要一个 GitHub 帐户。这非常简单,只需转到 GitHub 并单击“注册 GitHub”按钮创建一个帐户即可。创建帐户后,您可以通过单击左上角的按钮并填写您的用户名或电子邮件地址和密码来登录。
Forking 存储库
要对 LAMMPS 进行更改,您需要首先在 GitHub 上fork lammps/lammps 存储库。在撰写本文时,develop 是首选目标分支。因此,转到 GitHub 上的 LAMMPS 并确保分支设置为“develop”,如下图所示。
如果不是,请使用 按钮将其更改为开发。一旦完成,请使用fork按钮创建分支。
这将在您自己的 GitHub 帐户下创建 LAMMPS 存储库的一个分支(本质上是一个副本,但使用较少的资源)。您可以在此分叉和稍后的文件拉取请求中进行更改,以允许上游存储库将您自己的分叉中的更改合并到我们刚刚分叉的分叉(或从同一存储库分叉的其他分叉)中。同时,您可以进行设置,以便将上游的更改包含到您的存储库中,从而使其与正在进行的 LAMMPS 开发保持同步。
将更改添加到您自己的分支中
LAMMPS 上游版本的添加是使用功能分支来处理的。对于每一个新功能,都会创建一个所谓的功能分支,其中仅包含与一个特定功能相关的修改。例如,添加单个修复将包括创建一个仅包含修复头和源文件而没有其他内容的分支。这里有更详细的解释: feature branch workflow。
特色分支
首先,通过 HTTPS 在本地计算机上创建 GitHub 上版本的克隆:
git clone https://github.com/<your user name>/lammps.git <some name>
或者,如果您已设置 GitHub 帐户以使用 SSH 密钥,则通过 SSH:
git clone git@github.com:<your user name>/lammps.git
您可以通过单击“克隆或下载”按钮找到正确的 URL:
上面的命令将 git 存储库复制(“克隆”)到本地计算机上具有您选择的名称的目录。如果没有给出,它将默认为“lammps”。典型的名称是“mylammps”或类似的名称。
您可以使用此本地克隆进行更改并测试它们,而不会干扰 GitHub 上的存储库。
要将更改从上游拉取到此副本中,您可以转到该目录并使用 git pull:
cd mylammps
git checkout develop
git pull https://github.com/lammps/lammps develop
您还可以将此 URL 添加为远程:
git remote add upstream https://www.github.com/lammps/lammps
从那时起,您可以使用以下命令更新上游分支:
git fetch upstream
然后使用upstream/develop或upstream/release等引用上游存储库分支。
此时,您通常会从更新的分支中为您想要使用的功能创建一个功能分支。本教程包含更新本教程的工作流程,因此我们将分支称为“github-tutorial-update”:
git fetch upstream
git checkout -b github-tutorial-update upstream/develop
现在我们已经更改了分支,我们可以对本地存储库进行更改。请记住,如果您想开始研究另一个不相关的功能,您应该切换分支!
注:强烈建议不要对开发、发布或稳定分支进行更改。虽然一开始可能很方便,但从长远来看,它会带来更多的工作。有关使用 git 的各种文本和教程有效地讨论了使用功能分支的动机。
进行更改后
一切完成后,将文件添加到分支并提交:
git add doc/src/Howto_github.txt
git add doc/src/JPG/tutorial*.png
警告:不要使用 git commit -a (或 git add -A)。 -a 标志(或 -A 标志)将自动包含所有修改过的文件和新文件,但这很少是您想要的行为。它很容易导致意外地将不相关和不需要的更改添加到存储库中。相反,最好分别显式使用 git add、git rm、git mv 来添加、删除、重命名单个文件,然后使用 git commit 来完成提交。在提交之前,请使用 git status 仔细检查所有待处理的更改。如果您发现在命令行上执行此操作太乏味,请考虑使用 GUI,例如用 Tk 编写的 git 发行版中包含的 GUI,即使用 git gui(在某些 Linux 发行版上可能需要安装额外的软件包才能使用它)。
添加所有文件后,可以提交更改集并附带一些解释更改的有用消息。
git commit -m 'Finally updated the GitHub tutorial'
提交后,可以将更改推送到 GitHub 上的同一分支:
git push
如果您尚未配置任何内容,Git 会询问您在 GitHub 上的用户名和密码。如果您的本地分支尚未出现在 GitHub 上,它会要求您通过运行来添加它
git push --set-upstream origin github-tutorial-update
如果您正确输入用户名和密码,则功能分支应添加到 GitHub 上的分支中。
如果您想真正确保推送到正确的存储库(这是很好的做法),您可以明确提供它:
git push origin
或使用明确的 URL:
git push git@github.com:Pakketeretet2/lammps.git
提交拉取请求
到目前为止,本教程中的所有更改均针对您的 LAMMPS 克隆。然而,最终您希望将此功能包含到官方 LAMMPS 版本中。为此,您需要通过单击“新拉取请求”按钮来提交拉取请求:
确保当前分支设置为正确的分支,在本例中为“github-tutorial-update”。如果操作正确,您将看到的唯一更改是在此分支上所做的更改。
这将打开一个新窗口,其中列出对存储库所做的更改。如果您只是添加新文件,则无需执行太多操作,但我认为如果现有文件发生更改,则应在此处解决合并冲突。如果所有更改都可以自动合并,顶部的绿色文本会说明这一点,您可以单击“创建拉取请求”按钮,请参阅图片。
在创建拉取请求之前,请确保短标题准确,并添加包含有关拉取请求的详细信息的评论。您可以在此处写下您的修改的作用以及为什么应将它们合并到上游。
请注意“允许维护者编辑”复选框。默认情况下,此复选框处于选中状态(尽管在我的 Firefox 版本中,只有复选标记可见):
如果选中,维护人员可以立即将自己的编辑添加到拉取请求中。这有助于显着地包含您的分支,因为 LAMMPS 维护者可以将简单/琐碎的更改直接添加到您的拉取请求分支中。另一种选择是他们对自己的分支版本进行更改并向您提交反向拉取请求。除非您有充分的理由不这样做,否则只需选中此框即可。
现在只需写一些好的评论,然后单击“创建拉取请求”。
提交拉取请求后
注:当您第一次提交拉取请求(或请求拉取请求)时,您将收到成为 LAMMPS 项目合作者的邀请。请接受此邀请,因为成为协作者将简化某些管理任务,并且可能还会加快您的功能的合并速度。
您会注意到,提交拉取请求后,会自动执行一些检查:
如果一切顺利,您将看到以下内容:
如果任何检查失败,您的拉取请求将不会被处理,因为您的更改可能会破坏某些配置的编译或者可能无法干净地合并。您有责任消除测试失败的原因。如果您需要这方面的帮助,请通过添加注释来联系 LAMMPS 开发人员,解释您在解决失败测试时遇到的问题。
在拉取请求被包含之前,可能会发生一些更有趣的事情。
额外的变化
首先,您推送到存储库分支中的任何其他更改都将自动成为拉取请求的一部分:
这意味着您可以在提交拉取请求后添加应该成为该功能一部分的更改,这在您忘记它们的情况下很有用,或者如果开发人员要求在该功能被官方接受之前需要更改某些内容LAMMPS 版本。每次推送后,都会再次运行自动检查。
标签
LAMMPS 开发人员可能会向您的拉取请求添加标签,以将其分配到类别(主要用于簿记目的),但其中一些很重要:needs_work、work_in_progress、run_tests、test_for_regression 和ready_for_merge。前两个表明您的拉取请求不被认为是完整的。对于“needs_work”,负担完全由您承担;而“work_in_progress”也可能意味着 LAMMPS 开发人员可能想要添加更改。请注意拉取请求的评论。两个“测试”标签用于在合并代码之前触发扩展测试。如果 LAMMPS 开发人员怀疑您的更改可能会产生一些微妙的副作用,有时会这样做。默认情况下不会这样做,因为这些测试非常耗时。当分配给拉取请求的 LAMMPS 开发人员认为该请求已完成并触发最终的完整测试评估时,通常会附加 ready_for_merge 标签。
审查
截至 2021 年秋季,拉取请求需要通过所有自动测试以及至少 1 次来自具有存储库写入权限的 LAMMPS 开发人员的批准审查,然后才有资格进行合并。如果您的更改涉及与某些开发人员相关的代码,GitHub 软件会自动请求这些更改。这些关联是在文件 .github/CODEOWNERS 中设置的,因此,如果您希望在任何人更改文件或包时自动通知您进行审查,您已为 LAMMPS 做出了贡献,您可以向该文件添加合适的模式,或者 LAMMPS 开发人员可以添加你。
Otherwise, you can also manually request reviews from specific developers, or LAMMPS developers - in their assessment of your pull request - may determine who else should be reviewing your contribution and add that person. Through reviews, LAMMPS developers also may request specific changes from you. If those are not addressed, your pull requests cannot be merged.
否则,您还可以手动请求特定开发人员或 LAMMPS 开发人员的审核 - 在评估您的拉取请求时 - 可能会确定还有谁应该审核您的贡献并添加该人员。通过审核,LAMMPS 开发人员还可能要求您进行特定更改。如果这些问题没有得到解决,您的拉取请求将无法合并。
受让人
拉取请求有一个受让人属性。如果请求尚未经过任何开发人员审核,则不会将其分配给任何人。修订后,开发人员可以选择将其分配给 a) 您、b) LAMMPS 开发人员(包括他/她自己)或 c) Axel Kohlmeyer (akohlmey)。
-
如果您需要进行更改,则会出现情况 a)
-
情况 b) 意味着目前 LAMMPS 开发人员正在对其进行测试和审查,预计需要进行一些更改。审核后,开发人员可以选择直接实施更改或建议您实施更改。
-
情况 c) 意味着拉取请求已分配给开发人员,负责监督拉取请求合并到开发分支中。
在本例中,Axel 将教程分配给了 Steve:
LAMMPS 维护者的编辑
如果您允许维护者进行编辑(默认),则任何 LAMMPS 维护者都可以向您的拉取请求添加更改。在这种情况下,Axel 和 Richard 都对教程进行了更改:
反向拉取请求
然而,有时,您可能会觉得让其他人将更改推送到您自己的分支中感到不舒服,或者维护者可能不确定他们的想法是否正确。在这种情况下,他们可以进行更改,将您重新分配为受让人,并提交“反向拉取请求”,即在您分叉的 GitHub 存储库中提交拉取请求,以包含您作为拉取请求提交的分支中的更改你自己。在这种情况下,您可以选择将他们的更改合并回您的分支,可能会进行其他更改或更正,然后从那里继续。它看起来像这样:
由于某种原因,突出显示的按钮在我的情况下不起作用,但我可以转到我自己的存储库并从那里合并拉取请求:
请务必通过单击选项卡按钮检查更改以查看您是否同意它们:
在本例中,大部分是标记的更改以及 Axel 对“git gui”和“git add”命令的解释的简短重写。
因为我们可以接受这些更改,所以我们将通过单击“合并拉取请求”来合并。合并后看起来像这样:
现在,由于同时我们的教程本地文本也发生了变化,我们需要将 Axel 的更改拉回到我们的分支中,并将它们合并:
git add Howto_github.txt
git add JPG/tutorial_reverse_pull_request*.png
git commit -m "Updated text and images on reverse pull requests"
git pull
在这种情况下,合并很轻松,因为 git 可以自动合并:
随着 Axel 的更改合并以及一些最终文本更新,我们的功能分支现在就我们而言是完美的,因此我们将再次提交并推送:
git add Howto_github.txt
git add JPG/tutorial_reverse_pull_request6.png
git commit -m "Merged Axel's suggestions and updated text"
git push git@github.com:Pakketeretet2/lammps
此合并也显示在 lampmps GitHub 页面上:
合并后
当一切正常后,feature分支被合并到develop分支:
现在还有一个问题:如何处理合并到上游的功能分支?
原则上,从您自己的分叉中删除它们是安全的。这有助于保持它更加整洁。请注意,您首先必须切换到另一个分支!
git checkout develop
git pull https://github.com/lammps/lammps develop
git branch -d github-tutorial-update
如果你不先拉取,这并不是真正的问题,但 git 会在下一条语句中警告你,你正在删除一个尚未完全合并到 HEAD 的本地分支。这是因为 git 还不知道你的分支刚刚合并到 LAMMPS 上游。如果您先删除然后拉取,一切都应该没问题。您可以通过以下方式显示完全合并的所有分支:
最后,如果您在本地删除分支,您可能还想将其推送到远程:
git push origin :github-tutorial-update
工作流程的最新变化
本教程未包含最近对工作流程的一些更改。例如,除了所有新功能都要提交到的develop分支之外,还有release、stable和maintenance分支;发布分支作为“功能发布”的一部分从开发分支更新,而稳定(与发布)分支在“稳定版本”发布时从开发更新。在稳定版本之间,选定的错误修复和基础设施更新会从开发分支向后移植到维护分支,并且偶尔会作为更新版本合并到稳定版本。
此外,版本标签的命名现在遵循“patch_<日><月><年>”模式,以简化版本之间的比较。对于稳定版本,应用附加的“stable_<Day><Month><Year>”标签,更新版本标有“stable_<Day><Month><Year>_update<Number>”,最后,所有版本和提交均受约束自动测试和代码检查,以确保它们可以使用各种编译器和流行的操作系统进行编译。还应用了一些单元和回归测试。
LAMMPS 开发人员 GitHub 工作流程的详细讨论可以在文件 doc/github-development-workflow.md 中找到
相关文章:
【LAMMPS学习】八、基础知识(6.2)LAMMPS GitHub 教程
8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…...
专业习惯:避开本地语言,使用通用语言
如果你的目标是走一步看一步,那躺平就得了,学习什么的都没有必要。如果你的目标是远方,那么就需要未雨绸缪。 在工作之中,本地语言及习惯固然可用,但非常局限,随便换一个地方和场景,别人就难以理…...
【Leetcode每日一题】 综合练习 - 逆波兰表达式求值(难度⭐⭐)(73)
1. 题目解析 题目链接:150. 逆波兰表达式求值 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 数据结构选择: 使用栈(stack<int>)来存储操作数,以便进…...
2G 3G LTE 5G的区别
2G、3G、LTE和5G是不同代的移动通信技术,每一代技术都在其前一代的基础上提供了改进的性能、更高的数据速率和新的功能。以下是这些技术的主要区别: ### 2G (第二代移动通信技术): - **数据速率**:较低的数据速率,通常在几百kbps…...
《21天学通C++》(第二十章)STL映射类(map和multimap)
为什么需要map和multimap: 1.查找高效: 映射类允许通过键快速查找对应的值,这对于需要频繁查找特定元素的场景非常适合。 2.自动排序: 会自动根据键的顺序对元素进行排序 3.多级映射: 映射类可以嵌套使用,创…...
5月游戏市场迎来新的体验,网易两款游戏重磅出炉
易采游戏网5月9日消息,随着科技的飞速发展,手机游戏已经成为人们休闲娱乐的重要方式。在这个领域,网易作为国内领先的游戏开发商,一直致力于为玩家带来高品质的游戏体验。近日,网易携手国际大厂Square Enix,…...
15_Scala面向对象编程_访问权限
文章目录 Scala访问权限1.同类中访问2.同包不同类访问3.不同包访问4.子类权限小结 Scala访问权限 知识点概念 private --同类访问private[包名] --包私有; 同类同包下访问protected --同类,或子类 //同包不能访问(default)(public)默认public --公…...
LeetCode|700. Search in Binary Search Tree
题目 You are given the root of a binary search tree (BST) and an integer val. Find the node in the BST that the node’s value equals val and return the subtree rooted with that node. If such a node does not exist, return null. Example 1: Input: root […...
MacOS下载安装JDK8
一、前言 今天给苹果电脑安装JDK环境,后续打算把Mac系统也用起来,也体验一把用苹果系统开发。 JDK就不过多介绍了,大家都是JAVA开发,JDK就是JAVA开发的必要环境。目前已经更新到JDK20了,不过我是不会更新的࿰…...
macOS 如何使用Visual Studio Code 编译C++
在 macOS,则默认系统 C++ 编译器是 Clang。 要使用 Visual Studio Code 在 macOS 上的 Clang 中指定 C++ 版本,可以按如下所示修改tasks.json 文件: 在 Visual Studio Code 中打开您的 C++ 项目。按 Ctrl+Shift+P(或 macOS 上的 Cmd+Shift+P)打开命令面板。在命令面板中键…...
SQLite3简单操作
SQLite命令 文章目录 SQLite命令一、创建数据库二、表的操作1、创建表2、删除表 一、创建数据库 注:使用Ubuntu服务器操作,安装sqlite3 sudo apt update sudo apt install sqlite3 sqlite3 --version1、SQLite主要使用命令sqlite3来创建新的数据库 sq…...
从“制造”到“智造”:“灯塔”经验助力中国制造业转型升级-转载
作者:Karel Eloot,侯文皓,Francisco Betti,Enno de Boer和Yves Giraud 作为中国实体经济的主体,制造业是推动中国经济发展乃至全球制造业持续增长的重要引擎。站在历史与未来交汇的新起点上,中国制造业将背…...
C++ 容器(二)——容器操作
一、容器的修改 容器修改函数 insert():在指定位置插入一个或多个元素erase():删除指定位置或指定范围的元素push_back():将元素添加到容器的末尾pop_back():删除容器的最后一个元素 push_front():将元素添加到容器的开…...
操作系统——进程控制
创建进程 fork fork是一个系统调用函数,用来创建子进程,通过多个执行流完成任务。子进程和父进程共用一份代码,子进程数据使用写时拷贝,即子进程数据在创建的时候和父进程相同,但是当要修改数据的时候,子进…...
Marin说PCB之国产电源芯片方案 ---STC2620Q
随着小米加入的造车大家庭,让这个本来就卷的要死的造车大家庭更加卷了。随之带来的蝴蝶效应就是江湖上各个造成门派都开始了降本方案的浪潮啊,开始打响价格战了。各家的新能源车企也是不得不开始启动了降本方案的计划了,为了应对降价的浪潮。…...
已解决java.lang.StringIndexOutOfBoundsException: 字符串索引越界异常的正确解决方法,亲测有效!!!
已解决java.lang.StringIndexOutOfBoundsException: 字符串索引越界异常的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 检查索引范围 检查字符串长度 管理循环中的索引 总结 问题分析 java.lan…...
关于实体类注解@Data、@EqualsAndHashCode(callSuper = true)、@Accessors(chain = true)的作用
笔记:都是lombook插件的注解,作用是简化优化代码等,比如getter、setter,一般三者连用能避免一些如继承类的导致的一些坑,比如equal()方法的错误,具体用法可查阅每个注解及属性的作用。 Accessors(chain tr…...
5.9号模拟前端面试10问
5.9号模拟前端面试10问 1.html语义化的理解 HTML语义化是指使用具有明确含义的HTML标签来描述内容,而不仅仅是使用<div>和<span>等通用容器标签。语义化的HTML代码更易于阅读和维护,同时也有助于搜索引擎优化(SEO)。…...
vue3 JSX的使用与警告【JSX 元素隐式具有类型 “any“,因为不存在接口 “JSX.IntrinsicElements“】解决办法
一、安装 pnpm i vitejs/plugin-vue-jsx -D 二、配置 1、tsconfig.json "compilerOptions":{"jsx":"preserve" } 2、vite.config.ts import VueJsx from "vitejs/plugin-vue-jsx"...plugin:[vue(),VueJsx() ] 三、简单使用案例…...
一、计算机基础(Java零基础一)
🌻🌻目录 一、🌻🌻剖析学习Java前的疑问🌻🌻1.1 零基础学习编程1.2 英语不好能学吗?1.3 理解慢能学好吗?1.4 现在学Java晚吗?1.5 Java 和 Python 还有 Go 的选择1.6 Java…...
德国著名自动化公司Festo设计了一款仿生蜜蜂,仅重34g,支持多只蜜蜂编队飞行!...
德国著名的气动元件研发及自动化解决方案供应商Festo公司近日展示了一款仿生蜜蜂(BionicBee),重量只有34g,却完全可以实现自主飞行,还支持多只相同的蜜蜂机器人编队飞行。 BionicBee 重约 34 克,长 22 厘米…...
折腾记:C++用开源库Snap7通过S7协议连接西门子PLC
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 不是教程,是避坑指…...
Android studio 新版本 NewUI toolbar显示快捷按钮
新版本的Android studio 启用新的界面,以前许多快捷按键位置有变化 文章目录 设置始终显示主菜单设置ToolBar快捷按钮显示设置右下角显示分支 设置始终显示主菜单 原本要点击左上角几个横向才显示的菜单 设置始终显示,View -> Appearance -> Mai…...
辛普森公式求函数的近似积分【通用计算】
利用辛普森公式可以近似求出复杂函数的积分值,公式如下: ∫ a b f ( x ) d x ≈ h 3 [ y 0 y 2 n − 1 4 ( ∑ i 1 n − 1 y 2 i − 1 ) ∑ i 1 n − 1 y 2 i ] \int_{a}^{b} f(x) dx \approx \frac{h}{3}\left[ y_0 y_{2n-1} 4(\sum\limits_{i1…...
即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
多线程学习D10 收尾了应该
线程安全集合类概述 重点介绍java.util.concurrent.* 下的线程安全集合类,可以发现它们有规律,里面包含三类关键词:Blocking、CopyOnWrite、Concurrent Blocking 大部分实现基于锁,并提供用来阻塞的方法 CopyOnWrite 之类容器修改…...
ai可以做思维导图吗?当然是可以的!
ai可以做思维导图吗?在快节奏的现代生活中,思维导图作为一种高效的信息组织和表达工具,越来越受到人们的青睐。随着人工智能(AI)技术的不断发展,AI思维导图软件也应运而生,它们不仅能够帮助用户…...
景源畅信数字:抖音小店的入住门槛大不大?
近年来,随着短视频平台的崛起,抖音小店逐渐成为了众多商家和创业者关注的焦点。那么,抖音小店的入住门槛究竟大不大呢?本文将从四个方面对这一问题进行详细阐述。 一、注册流程 抖音小店的注册流程相对简单,只需按照官方指引完成…...
鸿蒙开发-ArkTS语言-容器-非线性容器
鸿蒙开发-UI-web 鸿蒙开发-UI-web-页面 鸿蒙开发-ArkTS语言-基础类库 鸿蒙开发-ArkTS语言-并发 鸿蒙开发-ArkTS语言-并发-案例 鸿蒙开发-ArkTS语言-容器 文章目录 前言 一、非线性容器 1.HashMap 2.HashSet 3.TreeMap 4.TreeSet 5.LightWeightMap 6.LightWeightSet 7.P…...
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、简单介绍Sizeof和Strlen1.1 Sizeof1.2 Strlen函数1.3 Sie…...
flash 做网站教程/优化大师官网
集合框架(collections framework)首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。其实说白了,可以…...
网站做百度推广吗/seo的关键词无需
之前对Linux下面时间相关的内容,一无所知,第一次见到hwclock,不知为何物,也没找到解释清楚的帖子。故此整理一下,简单介绍Linux下验证rtc驱动是否工作正常,相关的的命令:date和hwclock。先说明&…...
网络营销推广的三斧/seo外链收录
word2vec是早期NLP的必要预处理过程,其用于生成词的向量表示(embeding)。 其将单词映射为固定长度的向量(embeding向量),而通过向量表示可以更好地表达不同词之间的相关性,因此会使得后续的分类…...
wordpress搭建企业官网/网络营销百度百科
第三十二~三十三章:最小操作数,木块砌墙问题作者:July、caopengcs、红色标记。致谢:fuwutu、demo。时间:二零一三年八月十二日题记再过一两月,便又到了每年的九月十月校招高峰期,在此依次推荐&a…...
东莞网页制作网站/如何做好一个营销方案
PS:谁有相关的照片,请发给我。...
东莞最好的网站建设价格低/广州seo培训
满心热情与兴奋,最后变成了遗憾和伤心。 嗯,还有尴尬。 给61级讲Prim,课件合起来的话大概做了有一天多吧。 虽然没什么东西,但还是很用心地给他们写解释、流程,找例题习题,甚至还给他们出了一道题。 给他们…...