Chinaunix首页 | 论坛 | 博客
  • 博客访问: 682834
  • 博文数量: 183
  • 博客积分: 9166
  • 博客等级: 中将
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-31 16:17
文章分类

全部博文(183)

文章存档

2010年(159)

2009年(24)

分类:

2010-04-20 18:06:11



  1. c = !!a * b;

  2. ------
  3. if (a)
  4.       c = 1*b;
  5. else
  6.       c = 0*b;

  7. ------
  8. c = a? b: 0;
稍微简洁一些。

我也写过这样的代码, 不过不是作乘法, 而是作累积……
例如:
  1. int acc(int const* first, int const* last, int (*predicate)(int)
  2.        ,int initial)
  3. {
  4.       for (; first!=last; ++first)
  5.             if ( predicate(*first) )
  6.                   ++initial;
  7. }

  8. int acc(int const* first, int const* last, int (*predicate)(int)
  9.        ,int initial)
  10. {
  11.       for (; first!=last; ++first)
  12.             initial += predicate(*first)? 1: 0;
  13. }

  14. int acc(int const* first, int const* last, int (*predicate)(int)
  15.        ,int initial)
  16. {
  17.       for (; first!=last; ++first)
  18.             initial += !!predicate(*first);
  19. }
阅读(1254) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

mhsy20032010-04-23 07:46:57

C#,Java应该就不能这么干了,非bool变量不能使用!。
鉴定完毕,c/c++的小本本

安何2010-04-20 19:38:14