- 博客(67)
- 资源 (3)
- 收藏
- 关注
原创 七月历程
六月底老师通知让我提前返校,去长春自我隔离一段时间,这几天一直在收拾东西。空余时间没用来学习,不过倒是上 steam 上买了个游戏(QAQ)2020 是个多灾多难的年份(澳洲火灾,东非蝗虫肆虐,加拿大雪灾,菲律宾火山爆发,克什米尔雪崩,全球疫情),我只愿世界和平,不由得想到《流浪地球》的台词:“最初,没有人在意这场灾难,这不过是一场山火,一次旱灾,一个物种的灭绝,一座城市的消失。直到这场灾难和每个人息息相关。”几天没写东西,心里有点痒痒,可是赶飞机,找住处,写点啥呢?思来想去,有了这篇历程。以
2020-10-02 22:00:10
429
原创 数码管原理
今天有师弟问我数码管的问题,我想起我刚学单片机的时候,好像也在数码管的地方迷糊了一段时间,就简单写写数码管的原理。首先,什么是数码管?百度百科解答:数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中…看了估计白看,简言之,数码管是一种半导体发光器件,基本单元就是发光二极管,如果不明白发光二极管的话,请学习模电基础。多个发光二极管,摆放成数字的位置,成为一个基本的数码管单元。工作原理一些基本概念如下:
2020-08-07 09:56:13
4557
原创 LeetCode 841.钥匙和房间 - C++ - 小结
钥匙和房间有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j]由[0,1,…,N-1]中的一个整数表示,其中 N=rooms.length。钥匙 rooms[i][j]=v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间返回 true,否则返回
2020-08-07 09:54:02
551
原创 LeetCode 542.01 矩阵 - C++ - 小结
01 矩阵给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离两个相邻元素间的距离为 1示例:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000给定矩阵中至少有一个元素是 0矩阵中的元素只在四个方向上相邻:上、下、左、右。个人理解:应该挺好理解的,要得到的是最近距离,所有元素,那就广度优先搜索呗。弄一
2020-08-07 09:53:11
496
原创 LeetCode 733.图像渲染 - C++ - 小结
图像渲染有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr,sc)表示图像渲染开始的像素值(行,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。最后返回经过上色渲染后的图
2020-08-07 09:51:42
384
原创 LeetCode 394.字符串解码 - C++ - 小结
字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k,例如不会出现像 3a 或 2[4]的输入。示例:输入:s = "3[a]2[bc]"输出:"aaabcbc"输入:s = "3[a2[
2020-08-07 09:50:43
465
1
原创 LeetCode 225.用队列实现栈 - C++ - 小结
用队列实现栈使用队列实现栈的下列操作:push(x): 元素 x 入栈pop(): 移除栈顶元素top(): 获取栈顶元素empty(): 返回栈是否为空注意:你只能使用队列的基本操作:也就是 push to back,peek/pop from front,size,和 is empty 这些操作是合法的你所使用的语言也许不支持队列。你可以使用 list 或者 deque(双端队列)来模拟一个队列,只要是标准的队列操作即可你可以假设所有操作都是有效的(例如,对一个空的栈不会调用 p
2020-08-07 09:49:27
240
原创 《姑娘》
《姑娘》我想,我爱上一个姑娘,我想,她因我温柔而温柔,因我善良而善良;她会生气也会倔强,她会为我心动为我荡漾;我想她看我,眼里有光,我眼中也倒映着她的衣裙和她俊俏的模样;她那么的天真,那么纯洁,我想她对我热情,对我疯狂;她从天而降,像雷鸣掠过飞鸟的翅膀,扑进我怀中,如流水轰击山谷的心脏;我忍不住呐喊,却止步彷徨。她,点燃了我,点燃了我熄灭已久的心跳;她,推开了我,带给我那凋零一般的绝望;姑娘你离开,飘飘带走了落叶,姑娘你回来,轻轻踏着那白雪,姑娘仰着头,看我炽热的眼
2020-07-31 09:16:35
301
1
原创 LeetCode 232.用栈实现队列 - C++ - 小结
使用栈实现队列的下列操作:push(x): 将一个元素放入队列的尾部pop(): 从队列首部移除元素peek(): 返回队列首部的元素empty(): 返回队列是否为空示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明:你只能使用标准的栈操作:也就是只有 pu
2020-07-31 09:14:38
218
原创 LeetCode 94.二叉树的中序遍历 - C++ - 深度优先搜索(DFS)
给定一个二叉树,返回它的中序遍历。首先得知道什么是中序遍历:二叉树的遍历方式有前序,中序,后序,层序前序遍历:先访问根节点,然后左子树,然后右子树中序遍历:先访问左子树,然后根节点,然后右子树后序遍历:先访问左子树,然后右子树,然后根节点层序遍历:把一棵树从上到下,从左到右依次写出来接下来就好理解了,左根右,递归。代码如下(C++):class Solution {public: vector<int> ans; // 输出 vector<
2020-07-30 20:45:31
223
原创 LeetCode 494.目标和 - C++ - 深度优先搜索(DFS)
给定一个非负整数数组,a1,a2,…,an,和一个目标数 S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一共有5种方法让最终目标和为3。提示:数组非空,且
2020-07-30 20:43:51
344
原创 LeetCode 133.克隆图 - C++ - 深度优先搜索(DFS)
给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)图中的每个节点都包含它的值 val(int)和其邻居的列表(list[Node])class Node { public int val; public List<Node> neighbors;}说白了,看了半天没懂,大概意思就是说???拷贝一个图?参考了别人的代码,自己还是没理解。等再看看。感觉拿着 dfs 框架套上去就行了。代码如下(C++):class Solution {public: Node*
2020-07-30 20:33:03
283
原创 LeetCode 200.岛屿数量 - C++ - 深度优先搜索(DFS)
岛屿数量又来了,大多数情况下,能用 BFS 解决的问题,也能被 DFS 解决。问题具体见。岛屿问题代码如下(C++):class Solution { private: void dfs(vector<vector<char>> & grid,int r,int c){ // 深度优先算法,感觉就是个递归 int nr = grid.size(); // 岛屿大小 int nc = grid[0].size()
2020-07-30 20:30:58
409
原创 LeetCode - 栈和深度优先搜索
与 BFS 类似,深度优先搜索(DFS)也可用于查找从根结点道目标结点的路径。1.结点的处理顺序是什么?在下图中,从根结点 A 开始。首先选择结点 B 的路径,并进行回溯,直到到达结点 E,无法更进一步。然后回溯到 A 并选择第二条路径到结点 C。从 C 开始,我们尝试第一条路径到 E 但是 E 已被访问过。所以我们回到 C 并尝试从另一条路径到 F。最后找到 G。总的来说,在我们到达最深的结点之后,我们只会回溯并尝试另一条路径。因此我们在 DFS 中找到的第一条路径不一定就是最短的路径。例如
2020-07-30 20:29:23
245
原创 LeetCode 150.逆波兰表达式求值 - C++ - 注释
根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2+1)*3)=9代码如下(C++):class Solution {public: int ans; // 结果
2020-07-30 20:27:10
294
1
原创 LeetCode 739.每日温度 - C++ - 注释
请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures=[73,74,75,71,69,72,76,73],你的输出应该是[1,1,4,2,1,1,0,0]。提示:气温列表长度的范围是[1,30000]。每个气温的值的均为华氏度,都是在[30,100]范围内的整数。代码如下(C++):class Solution {public: vector&
2020-07-30 20:24:08
289
原创 LeetCode 20.有效的括号 - C++ -注释
这个题是我觉得比较简单的了。开心。给定一个只包括’(’,’)’,’{’,’}’,’[’,’]'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。代码实现如下(C++):class Solution {public: bool isValid(string s) { stack<char> st; // 定义栈 for(auto x:s)
2020-07-30 20:21:46
254
原创 LeetCode 155.最小栈 - C++ - 辅助栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x):将元素 x 推入栈中。pop():删除栈顶的元素。top():获取栈顶元素。getMin():检索栈中的最小元素。官方思路如下方法一:使用辅助栈定义一个[数据栈]来支持 push、pop、top 操作定义一个[辅助栈]其栈顶为当前最小值,以支持常数时间复杂度的 getMin 操作代码如下(C++):class MinStack { stack<int> dataS
2020-07-30 20:19:57
363
原创 你好2020
00 年代如同梦呓,10 年代就在昨日。趁大家都在纪念着 10 年代的结束,我是不是可以偷偷的原谅自己不太满意的过去。希望过往所有的遗憾都是未来惊喜的铺垫。生活从未偏爱过谁,可我能听懂你的歌,这也许就是你我生存下去的意义。—— 佚名2019 年 23 点 58 分,我抬手看了看时间,嗯,还有两分钟。我盯着时间走到 59,开始在心中倒数,60.59.58…,不晓得是心情不够平静,还是身边歌声太过喧嚣,在倒数 5 秒的时候,时间竟然已经到了 00:00,就在眨眼的那前一秒还是大大的 59,59.
2020-07-28 19:58:38
348
3
原创 Altium Designer 入门教程
注:使用了引用语法但不是引用:以下内容有部分来源于网络、博客等等,结尾会给出参考链接。(๑•ั็ω•็ั๑)希望大家可以自觉的在转载、转发时著名出处。(๑• . •๑)预防侵权,支持原创,支持开源,从你我做起。= ̄ ω  ̄=放在开始如果您喜欢我的文章,拜托点赞+收藏+关注,博主会根据大家喜好来推出相关系列文章~更多精彩内容也可以访问我的博客Aelous-BLog/** * Copyright(C),2019-2020,xudongpo.cn * Author: 许东坡 * Email.
2020-07-28 19:58:01
12397
6
原创 好好读书,好好睡觉
白天,你要好好读书,书里有你不知道的。夜晚,你要好好睡觉,梦里都是你想要的。—— 佚名听了华晨宇的《与火星的孩子对话》,明明是花花写给粉丝的,我想到的却都是你。篡改了花花的歌词:你 看着爱笑 却还有些失落和悲伤那些失落 那些悲伤 也在我心里你 看着自信 却还有些退缩和逃避那些退缩 那些逃避 请你别在意你 看着坚强 却还有些脆弱和疑惑那些脆弱 那些疑惑 有它的意义我 看着坚持 却还有些放弃和冷漠那些放弃 那些冷漠 要做你自己你 看着勇敢 却还有些害怕和怯懦那些害怕 那些怯懦 我会在
2020-07-28 19:47:14
378
原创 让生命起舞
最近在偶然看到了复旦大学陈果老师的人生哲学课,其中讲到活在当下,让生命起舞,让我颇为感触。如同老师所愿意的,在这世界的某个地方,渺小的我了解到了,还有很多人是这样生活的,生活还可以这样去做。我喜欢海子的诗,海子有一首诗《面朝大海,春暖花开》,讲:“从明天起,做一个幸福的人。”陈果老师问,从明天起,做一个幸福的人,那今天呢?那么今天永远都是不幸福的。我们的未来是由每一个当下所延续出的时光。这一刻的时光,映照着你此生的种种可能。认真对待此时此刻,就是认真的对待着已经完成了的过去,和将要发生的未来。也就是
2020-07-28 19:34:24
444
1
原创 敬岁月一杯酒
上天很有意思,猫喜欢吃鱼,猫却不能下水,鱼喜欢吃蚯蚓,鱼却不能上岸。人生,就是一边拥有,一边失去,一边选择,一边放弃。人生,哪有事事如意,生活,哪有样样顺心。所以,不和别人较真,因为不值得,不和自己较真,因为伤不起,不和往事较真,因为回不去。—— 网易云音乐热评《鱼》陈绮贞人的一生中,总有那么几年,暗淡无光,负重前行;这一切都是为了让未来的人生变得更加辽阔宽广。在知乎看到有人提问:“看了知乎后越来越自卑怎么办?”大猫布丁回答,大部分人都只是普通人。不提前准备,考试就一定会挂。也许遇到喜欢的人,对
2020-07-28 19:33:30
368
1
原创 Hexo图片相关 - 文章显示、主页显示、修改fancybox
这篇文章是我在写博客的过程中遇到的关于图片显示的问题总结。本来还有其他文章需要整理,但是又担心在写作过程中把刚解决的问题忘记了,所以先行记录。主要围绕:如何在博客中显示图片?asset-image以及fancybox。原生引用在文章中显示图片asset-image在主页中显示图片修改 fancybox在文章中显示图片首先,第一点,如何在文章中显示图片?网上基本上都可以查到相关的资料,一般是安装 asset-image 插件,然后修改 post_asset_folder 值为 true
2020-07-28 19:30:12
1374
1
原创 创造我想要的生活
不管我想不想,生活都还是生活。我不愿意,我想要的都是别人的。今天我们小区停电停水,我上午断断续续学会习,一家人吃了午饭后陆续午休了。靠在床上,想要写点什么,没什么思路,顺手点开了 apple 官网,看了看电脑平板,又点开了淘宝,缓过神来已经 20 分钟后了。看了看写了一半的学习笔记,忽然一股凉意涌上心头。就好像平时有时候,上一秒看着论文,下一秒忽然点开 QQ,空间走一走的感觉。若不抽出时间来创造自己想要的生活,你最终不得不花费大量的时间,来应付自己不想要的生活。—— 予诗 奶嘴效应很多人应该.
2020-07-23 10:46:29
1870
1
原创 阿里云ECS服务器 - nginx配置https
今天域名备案完毕,现在阿里云备案比以前方便许多,不需要幕布拍照,直接移动端备案,一周左右就差不多OVER。备案完毕,当然是要把自己的域名和自己的服务器连起来啦,之后就可以愉快的码字了。购买和搭建服务器我就不说了,如果有需要可以留言联系我。BTW:很推荐阿里云 ECS,至少个人博客用起来真的很 happy,学生也不贵。DNS 解析首先是 DNS 解析,要求我们有自己的域名。在阿里云控制台,点击解析。分别添加以下两条记录:主机记录记录类型记录值wwwA服务器 IP
2020-07-23 10:45:46
377
原创 前端案例 - 导航条菜单的制作
每个网站都包含导航条菜单,在此做一些 HTML 和 CSS 基础回顾。本文主要跟随课程完成导航栏菜单的制作,课程来源 imooc导航条菜单的制作。推荐学习前端的朋友可以看看,简简单单一个小课程,对于刚有前端基础的人来说很友好,整体清晰易懂,逻辑通顺,后期稍微涉及一丢丢 JS,很不错。垂直菜单栏导航菜单用什么元素制作呢,通过之前学习的网页设计结构表现原则我们可以得知,导航目录条目性的语义 与 无序列表 非常接近,所以选用无序列表。垂直菜单栏的整体结构如下:HTML 代码:<body>
2020-07-23 10:44:19
1601
原创 前端设计原则 之 结构表现原则
前端三大基础,HTML+CSS+JavaScript:HTML 为结构,CSS 为表现,JavaScript 为行为。前端设计需要遵循结构、表现、行为分离原则,此处的分离说的不仅仅是将文件分开来放置!!!分离不单单是一种方法,更是一种思想,并不是网页设计最初就需要分离,而是随着技术满满发展,演变出更为复杂的需求,使得分离的原则必不可少。分离原则:首先将重点放在 HTML 结构和语义化上面,其次考虑 CSS,JS 等,以便于后期维护和分析。HTML 结构和语义化就相当于房子的结构,一个合理的结构.
2020-07-23 10:40:43
371
原创 LeetCod 广度优先搜索(BFS)总结
看到 BFS 的题,脑子里知道怎么搞了,就是不知道从何入手。偶然看到了 labuladong 大神编写的 BFS 算法框架,摘过来,背就完事了。BFS 的核心思想应该不难理解的,就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用「队列」这种数据结构,每次将一个节点周围的所有节点加入队列。BFS 相对 DFS 的最主要的区别是:BFS 找到的路径一定是最短的,但代价就是空间复杂度比 DFS 大很多。// 计算从起点 start 到终点 target 的最近距离i
2020-07-21 09:52:01
366
原创 LeetCode 279.完全平方数 - C++ - 广度优先搜索(BFS)
完全平方数给定正整数 n,找到若干个完全平方数(比如 1,4,9,16…)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入:n = 12输出:3解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:13 = 4 + 9代码如下(C++):class Solution {public: int numSquares(int n) { if(n <= 0){ // 如果输入值 小于 0 返回。 retu
2020-07-21 09:50:10
459
原创 LeetCode 752.打开转盘锁 - C++ - 广度优先搜索(BFS)
题目:打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有 10 个数字:‘0’到’9’。每个拨轮可以自由旋转:例如把’9’变为’0’,‘0’变为’9’。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为’0000’,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的数字,你需要给出最小的旋转次数,如果无论如何不能解锁,返回-1。示例:输入:dead
2020-07-21 09:46:56
448
原创 LeetCode 200.岛屿数量 - C++ - 广度优先搜索(BFS)
岛屿数量给你一个由’1’(陆地)和’0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。使用广度优先搜索方式进行搜索思想:遍历所有的网格,遇到 1,我们就认为遇到了一个岛屿,然后对岛屿的其他范围进行搜索,通过广度优先,对相邻的每个元素进行遍历,如果遇到元素值为 1 的则加入队列。知道队列为空。我们要将遍历过的值归零。这样所有的都为 0 即结束。代码如下所示(C++):cla
2020-07-21 09:35:46
688
原创 LeetCode 622.设计循环队列(详细注释) - C++
队列-实现队列的实现方式其实很好理解,就是一个数组,我们通过指针对头部进行索引,就可以实现了。这种方法实现很简单,但是效率很低,因为数组的大小不是固定的,会随着指针的移动,占用的空间越来越大。改进队列循环队列:我们使用固定大小的数组,和两个指针来指示起始位置和结束位置,目的是重用我们之前被浪费掉的存储。设计循环队列要求我们设计的队列有如下功能:MyCircularQueue(k):构造器,设置队列长度为 kFront:从队首获取元素。如果队列为空,返回-1Rear:获取队尾元素。如果队列
2020-07-21 09:33:02
416
原创 canvas绘图学习 - 学写一个字
内容借鉴慕课网 学写一个字,老师@liuyubobobo讲的不错,值得学习。学一个技术,最重要的就是练。我自己还是个没啥想法的人,那就借鉴别人的想法,跟着老师学习,模仿大神。本练习目标是在 PC 和移动端完成一个手写板,以此来练习 canvas 的基础知识。绘制米字格首先要绘制米字格,第一步当然是在 html 中添加 canvas:<canvas id="canvas">您的浏览器不支持canvas</canvas>然后定义相应的样式。注意不推荐在 CSS 中定义
2020-07-21 09:25:42
1335
原创 JS设计模式学习 - 观察者模式
观察者模式(Observer)观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。又称为发布-订阅模式。观察者模式最主要的就是完美的将观察者与被观察的对象分离开来。由于面向对象的单一职责原则,使得系统中的每一个类将重点放在某一个功能上,而不是其他方面。观察者模式在模块之间划定了情绪的界限,提高了应用程序的可维护性和重用性。发布-订阅模式的作用发布-订阅模式可以广泛应用于异步编程之中,这是一种替代传递回调函数的方案。比如,我们可以订阅 ajax
2020-07-21 09:24:38
551
原创 JS设计模式学习 - 单一职责原则
单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。单一职责原则的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方法就有了两个职责。每一个职责都是变化的一个轴线,如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。特别是当两个职责耦合在一起的时候,一个职责发生变化可能会影响到其他职责的实现,造成意想不到的破坏。这种耦合性得到的是低内聚和脆弱的设计。因此 SRP 原则体现为:一个对象(方法)只做一件事情。设计模式中的 S
2020-07-21 09:23:53
497
原创 JS设计模式学习 - 适配器模式
适配器模式(Adapter)提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。适配器模式的作用是解决两个软件实体间的接口不兼容问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。适配器的别名是包装器(wrapper),这是一个相对简单的模式。在程序开发中有许多这样的场景:当我们试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求。这时候有两种解决办法,第一种是修改原来的接口实现,但如果原来的模块很复杂,或者我们拿到的模块
2020-07-21 09:23:07
506
原创 JS设计模式学习 - 迭代器模式
迭代器模式(Iterator)提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按照顺序访问其中的每个元素。目前,几乎所有流行的语言如 Java、Ruby 等都已经有了内置迭代器的实现,许多浏览器也支持 JavaScript 的 Array.prototype.forEach。jQuery 中的迭代器迭代器模式无非就是循环访问聚合对象中的各个元素。比如 jQuer
2020-07-21 09:22:20
405
原创 Python小项目 - 书籍借阅系统
持续一周的出差在今天结束了,忙忙碌碌的工作,零零散散的时间,出差前我留了个小练习给实验室小朋友,自己当然也要完成一下,出差第二天我就写完了这个系统,一直没时间整理,今天上飞机前抽点时间写一写。前几个月给实验室买了几本书,本来说用 LabVIEW 写个实验室书籍借阅系统来着,但是一是懒、二也是懒,一直拖着没做,正好赶着这个机会,用 Python 弄个出来。GUI 界面我就不弄了,时间太紧迫,也不立 Flag 说之后完善什么的,等回去再用 LabVIEW 弄一个吧。今天正式回来上班了,把之前没弄完的整理完
2020-07-20 13:04:22
1199
1
原创 Hexo系列 - 升级NexT
很久没有登录 NexT 官网了,这几天去官网查看,发现 NexT 已经升级到 NexT7 了。便想到了升级主题的方法。一查资料发现好像升级还可以提升访问速度。那就必须得大干一番了。升级 Hexo首先进行 Hexo 版本升级Hexo 版本升级可以通过 npm 实现,相关命令如下:npm i hexo-cli -gnpm update再输入hexo vesion查看当前版本,发现版本已经更新成功了。升级 NexT接下来升级 NexT 主题版本事关软件,凡事都要先查资料,github,官方文
2020-07-20 13:03:02
938
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人