摘要: 到了C++11最激动人心的特性了:匿名函数:lambda表达式假设你有一个vector v, 想知道里面大于4的数有多少个。for循环谁都会写,但是STL提供了现成算法count_if,不用可惜。C++03时代,我们会这样写:#include #include #include using namespace std;bool gt4(int x){ return x>4;}struct GT4{ bool operator()(int x){ return x>4; }};int main(){ vector v; 很多v.push_back(...... 阅读全文
posted @ 2013-11-22 21:50 NPBool 阅读(4116) 评论(3) 推荐(0) 编辑
摘要: 类型推导可以说是C++模拟动态语言特性的起点,就从这里开始这个系列吧。auto使用迭代器的时候,类型总是一件烦心的事。vector > v;vector >::iterator it = v.begin(); 函数指针也同样, 类型声明很蛋疼:int add(int x,int y){ return x+y;}int main(){ int (*func)(int,int) = add; cout> v; // C++11 可以不用在'>>'之间加空格了!auto it = v.begin();auto func = add;编译器会根据值的类型, 阅读全文
posted @ 2013-11-20 22:12 NPBool 阅读(4067) 评论(0) 推荐(1) 编辑
摘要: 这几天突然心血来潮,看了看C++11的“新”特性。虽然C++11早就出了,但是一直没有关注。我已经很久没用C++了,Python(以及Java,Ruby)几乎包办了我日常所有的编程任务。但是没想到一发不可收,C++这样一门历史悠久的语言在今天还能做出如此革新,实在可敬可佩。新加入的特性完全颠覆了我对C++的认识,就像是见到了一门熟悉的新语言,感觉很奇妙。网上大都批评C++更加复杂了。但加入的特性在其他语言基本上能找到影子,如果使用过Python、Ruby这样的脚本语言,这些新特性的引入是很自然地一件事。抱怨C++更加复杂的同学,我很怀疑有没有真正严肃地使用过C++,亲自试一试这些特性。大部分的 阅读全文
posted @ 2013-11-20 12:34 NPBool 阅读(403) 评论(0) 推荐(0) 编辑