C++

避免将「unsigned int」和「int」放在布尔表达式中作比较

这个标题不够犀利,不少人看到第一反应肯定是——“这我知道啊”。但是很多人肯定写过如下的代码
#include<iostream>#include<string>#include<cstring>using namespace std;int main(){string s = "abcde";for(int i = 0; i < s.size(); ++i) {s[i] = toupper(s[i]);}cout<<s<<endl;}
这个例子是将所有的小写字母变成大写字母,很正常。但是这种编程习惯有个隐藏的风险,再来看下面这段代码,这段代码...阅读全文

C++中的「模板元编程」——Template Metaprogramming(TMP)

之前在coolshell看到一遍文章类型的本质和函数式实现,讲怎么使用函数式编程来实现一个栈,十分有意思。今天在看《Effective C++》的时候也看到了一种类似的编程方法,这本书确实是让人学到太多了,必须点个赞,有些东西虽然基础,但是没看过是不知道可以这样用的。

以下的内容主要就是说其中的条款48——“认识template元编程”。最具体的讲解还是参考原书啦,这里只是提一下。

模板元编程最主要的好处,就是能够将运行期执行的任...

阅读全文

Sicily 1135 飞越原野 (SOJ 1135)「BFS 广度优先搜索」

原题地址点击打开链接

小时候看过这题,但是当时还小不会做,昨天晚上将其解决了。写省赛的总结参见这里)花了不少时间,啊,所以堆到现在才来写。要吐个槽的是原本打算这周回家,以为在经过各种任务、面试洗礼后能够舒舒服服地和妹子回家看看钢铁侠1、2+复仇者联盟,没想到妹子星期6有广东移动的笔试要去,我也可能要在19号有另外一个面试·····哎,我想回家啊!

————————正文———————

此题其实和最正规的BFS差别不大,关键就是限制了有些地方不能走只能飞,有的地方可以走...

阅读全文
第 1 页,共 2 页12