r****t 发帖数: 10904 | 1 终于跟写 python 感觉差不多了。不过可能 abuse 了。 | t****t 发帖数: 6806 | 2 嗯, 是很爽
【在 r****t 的大作中提到】 : 终于跟写 python 感觉差不多了。不过可能 abuse 了。
| I*****y 发帖数: 602 | 3 什么东东呀?
【在 t****t 的大作中提到】 : 嗯, 是很爽
| C***y 发帖数: 2546 | 4 新的smart pointer 吧
【在 I*****y 的大作中提到】 : 什么东东呀?
| t****t 发帖数: 6806 | 5 No, you use auto to declare type when you have an initializer.
e.g.
int i=10;
====>
auto i=10;
Sounds useless huh? but sometimes it's useful--
auto add_one = bind2nd(plus(), 1.0);
transform(a.begin(), a.end(), a.begin(), add_one);
without auto, you will have to write
transform(a.begin(), a.end(), a.begin(), bind2nd(plus(), 1.0)));
This is an example, the real expression can be much more complex.
=====
but lambda expression is better in these cases:
for_each(a.begin(), a.end(), [](double& x){ x+= 1.0; });
【在 I*****y 的大作中提到】 : 什么东东呀?
| l*********s 发帖数: 5409 | 6 i c, so it is like typeof | f******y 发帖数: 2971 | 7 C++11 encourages begin(a), end(a) instead of a.begin() and a.end(); The
former ones support arrays better.
【在 t****t 的大作中提到】 : No, you use auto to declare type when you have an initializer. : e.g. : int i=10; : ====> : auto i=10; : Sounds useless huh? but sometimes it's useful-- : auto add_one = bind2nd(plus(), 1.0); : transform(a.begin(), a.end(), a.begin(), add_one); : without auto, you will have to write : transform(a.begin(), a.end(), a.begin(), bind2nd(plus(), 1.0)));
|
|