8月 19 2019
Categories: C++ Tags: C++

C++的class本质上是值语义的,它在作为函数返回值时可能会造成不必要的拷贝 返回值优化(RVO)返回值优化是编译器对返回一个值语义对象时进行的优化,这有助于性能优化 假如我们有一个Foo类,它的定义如下所示 class Foo { public: Foo() { cout << "... ...

7月 14 2019
Categories: 网络编程 Tags: Linux, 网络编程

eventfd是Linux提供的一个进程/线程间通信的一种方式,它是一个文件描述符,所以可以使用read/write。 在我们编写Reactor模式的服务器程序时,每个I/O线程都会有一个event loop,而这些线程会阻塞于epoll_wait(Linux系统) 我们在给这些线程分发任务时,需要唤醒阻塞这些线程,而eventfd可以加入到epoll中,所以我们可以使用eventfd来实现唤醒线程 ...

3月 17 2019
Categories: Python Tags: Python, 模拟登录, 爬虫

之前学校用的是老版正方教务系统,也写过文章,而最近学校更换了教务系统,作为计算机的学生,当然还是看看能不能写个脚本抢下课啦。 具体用的时候也需要加点多线程的功能,我大概开了15个线程吧,不得不说学校这次的教务系统的服务器比之前的好了。 成果大概就是帮一位女同学成功抢到了课(主要是脚本也没有扩散,毕竟如果多人使用这种脚本对服务器还是有点影响的 模拟登录请求第一步是登录一次教务系统,然后抓包看... ...

9月 13 2018
Categories: C++ Tags: C++

初次遇到std::forward是在阅读std::make_shared源码时看到的,当时不少很能理解为什么这可以达到完美转发的目的。这里来总结一下。 引用折叠std::forward的出现是因为C++11右值语义的出现,而有时候我们需要写下面的代码进行参数的转发。 template<class T> void foo(T&& arg) { ... ...

7月 28 2018
Categories: C++ Tags: C++, STL

最近在写智能指针shared_ptr的实现,本以为是一个比较简单的轮子,但其实内部实现是比较复杂的,总的来说总共有以下几项。 内部数据结构的实现shared_ptr有两个私有成员,一个为指向对象指针,另一个为引用计数块的指针。 我刚开始以为内部只是一个指向对象指针和一个引用计数(比如size_t)的指针,其实内部构造并不是这么简单,智能指针shared_ptr需要满足下面几点。... ...

6月 12 2018
Categories: Python Tags: Python, 模拟登录, 爬虫

最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作。 而且整个流程是比较简单,这是因为正方教务系统是比较旧的,全文的IP地址部分遮挡,请换成你们学校的IP地址。 尝试登录首先我们打开学校的教务系统,随便输入,然后提交表单,打开Chrome的开发者工具中的Network准备抓包 ...

6月 09 2018
Categories: Linux Tags: VPS, git, hexo

前言有一台VPS一直空闲,未免有点浪费,所以想把博客部署到VPS上,并且绑定域名 之前尝试过这么做过,但是一直都没有成功,因为这其中有很多细节都是需要注意的,所以还是写一篇博客来记录这次的部署过程 以后换VPS的时候就不用像这次一样到处查找资料了 原理部署到VPS的原理即是在VPS上搭... ...

3月 30 2018
Categories: Python Tags: Python, 爬虫

前言这个小程序是用来爬取小说网站的小说的,一般的盗版小说网站都是很好爬取的 因为这种网站基本没有反爬虫机制的,所以可以直接爬取 该小程序以该网站http://www.126shu.com/15/下载全职法师为例 ...

2月 11 2018
Categories: CSAPP Tags: CSPP, 阅读

上手指南一共 12 个需要补充的函数,所有的工作都只需修改 bits.c 文件,测试的话有三种方式:btest, dlc, 和 BDD checker。 一些小技巧:在函数开始时声明所有变量 }应该在第一列 注意运算符号的优先级,使用括号确保顺序的正... ...

1月 31 2018
Categories: Python Tags: Python

前言最近答题类app比较火爆,由于题目广并且时间短,自己打字搜索是不太可能的了,于是想自己做一个自动搜索的Python脚本 该Python脚本的原理是用adb工具将手机截图传到电脑上进行文字识别,然后百度搜索该问题,打开浏览器时间还是比较慢的 ...

9月 06 2017
Categories: Python Tags: Python

基本容器类型list>>>classmates = ['Tom','Peter'] >>>classmates ['Tom','Peter'] ...

8月 29 2017
Categories: C++Primer读书笔记 Tags: C++, 阅读

对象移动右值引用右值引用区别于普通引用,用两个&表示 返回左值引用的函数,连同赋值、下标、解引用和前置递增递减运算符返回左值 返回非引用的函数,连同算术、关系、位以及后置递增递减运算符都生成右值 我们不能将左值引用绑定到一个右值上,但可以使用const左... ...

8月 23 2017
Categories: C++Primer读书笔记 Tags: C++, 阅读

向算法传递函数向排序算法传递二元谓词定义isSHorter方法 bool isShorter(const int &i,const int& j) { return ... ...

8月 04 2017
Categories: C++Primer读书笔记 Tags: C++, 阅读

变量与基本类型extern的使用声明而不定义extern in... ...

7月 27 2017
Categories: 算法 Tags: LeetCode, 算法

231. Power of Two本题有四种思路,一种一种道来 循环class Solution { public: bool isPowerOfTwo(int n) { ... ...

7月 26 2017
Categories: 算法 Tags: LeetCode, 算法

翻转数字问题7. Reverse Integer这道题知道原理会非常容易弄懂,值得注意是要注意溢出问题 贴上代码: class Solution{ public: in... ...