《Effective Modern C++》第二章笔记:auto

这章更加详细地介绍auto关键字。

Item 5: 优先考虑使用auto来代替显式类型声明

习惯C的写法可能都会为变量指出一个类型,然而这有可能忘记初始化;有些场合若显式指出变量的类型,那么写起来非常长;将局部变量定义成闭包类型,因为闭包类型只有编译器知道,所以无法显式指出它的类型。

阅读更多

《Effective Modern C++》第一章笔记:Deducing Types

这几天人工智能成绩出来了,还是开卷考试,竟然挂掉了,真是意不意外。。。请导员查了一下平时分:卷面46/100,平时53/100,按经验来说,只要卷面过40,靠平时分还是能拉到及格的,以前平时分一般会给到90左右,这次真是吃了平时分的亏了。

回忆了一下,人工智能这门课不点名,但是每节课都会有随堂测试,靠这个来算平时分吧。这门课我印象中缺过两节课,因为前段时间在忙比赛,加上开卷,期间也和老师提前打过招呼(邮件没回复,估计没看到),随堂测试靠度娘。结果居然因为平时分太低也救不了了。

阅读更多

2017华为软件精英挑战赛参赛心得

体验

2017-04-25 20:18

比赛终于要结束了,最终复赛没能进前四,止于中游。自从上周三把数据规模调大后,名次一直哗哗掉,无法挽救,试过好几种方案,没能搞定换挡问题,也就是说给你最优位置,你都找不到最优解,真是可怕。

阅读更多

Linux多显示器配合i3wm窗口管理器

很久没写博客了,来更新下关于Linux方面的问题。

已知问题

在Linux桌面环境下,使用多显示器会遇到很多bug,例如窗口菜单栏无法下拉,Chrome浏览器表单下拉框无法显示等等,头疼死了。

阅读更多

CSAPP第四章总结:Processor Architecture

这章主要讲如何设计一个处理器,可以更好的理解计算机的运作过程。

设计处理器的指令集为Y86,比较简单,适合学习,与x86类似。然后用HCL(Hardware Control Language)设计其电路结构。利用连续的指令(每条指令细分为5步)实现流水线pipelined,就可同时执行多条指令。

阅读更多

CSAPP第三章总结:Machine-Level Representation of Programs

以下为自用笔记,具体可看Computer Systems A Programmer’s Perspective

这章主要讲高级语言的汇编形式,如何通过汇编/反汇编来分析一个程序。要想深入理解操作系统,必须从底层开始,那就是汇编了。

因为我的机器是64位的,可以通过参数-m32来编译32位的程序,这样结果可和书中的尽可能吻合。建议用-O1或者-O0参数来汇编,这样使得汇编代码与源代码差别不是很大。

阅读更多

实现一个生命游戏

前几天在LeetCode上面遇到这么一个题目:Game of Life,给定一个初始pattern,求其下一个状态。

然后今天闲的蛋疼又用Javascriptcanvas实现了一下,项目地址:https://github.com/netcan/gameOfLife,最后搞到博客上了,具体可看左栏。

操作方法:

  • 鼠标右键暂停
  • 鼠标中键清除所有细胞
  • 鼠标左键添加细胞,最好在暂停状态下添加。

阅读更多

求下一个排列数

LeetCode上遇到这么一个题:Next Permutation

意思就是给定一个序列,求下一个排列数。下一个排列数是指重排序列,使得下一个序列的字典序比当前序列要大,如果找不到,就返回最小字典序的那个序列。

要求是一步到位,不能分配多余的内存。

这个题貌似是要求实现C++的next_permutation函数,然后去瞄了一眼其实现:

阅读更多