当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言:
 

 

 ·仿函数和区间(4)    »显示摘要«
    摘要: 第34章 仿函数和区间(4) mathew wilson /著 刘未鹏(pongba) /译 34.3.6 再进一步,走得太远了! 你可能想知道:我们能否更进一步,把需要指定字符类型的限制也去掉。答案是:可以,这很容易,见listing 34.6: listing 34.6 struct is_large : public std::unary_functi......
    摘要:gnu 较宽松公共许可证 (简体中文翻译版) gnu general public license gnu 较宽松公共许可证 (简体中文翻译版) 声明! 这是一份 gnu 较宽松公共许可证非正式的中文翻译。它不是自由软体基金会所发布,并且不能适用于使用 gnu lgpl 的软体 —— 只有 gnu lgpl 英文原文的版本才行......


仿函数和区间(2)
                  第34章 仿函数与区间(2)

刘未鹏(pongba) /译 【程序编程相关:CPU超频指南

                                                               mathew wilson /著 【推荐阅读:StringBuffer帮你减轻Java

【扩展信息:基于usecase的需求分析过程

 

34.2.1 数组

    正如我们在第14章所看到的,让数组大小的定义出现在两个(或更多)地方是错误的潜在源头.即使它们使用了相同的常量,从效果上说,仍然存在两个定义:

 

int ari[10] = { . . . };

std::for_each(&ari[0], &ari[10], print_int);

 

    同样,我们也看到:处理这种情况的最简单而有效的办法是使用dimensionof()来静态的确定数组大小:

 

std::for_each(&ari[0], &ari[dimensionof(ari)], print_int);

 

    然而,有了for_all(),我们可以很轻易的对数组做特化,像这样:

 

template< typename t

, size_t n

, typename f

inline f for_all(t (&ar)[n], f f)

{

return std::for_each(&ar[0], &ar[n], f);

}

 

34.2.2 命名

    现在,让我们考虑如何为这些算法命名.我故意选择了一个不合适的名字,这样我们就会觉得不满意.for_all()这个名字的问题很明显:它不能照搬到其它算法身上.比如说,我们有fill_all().accumulate_all()...吗?所以这并非一个具有吸引力的选择.
...   下一页
    摘要: 案例类别: vas网络 系统类型: cmode 系统版本: 硬件:sun 软件:所有版本 案例标题: cmode放号中的数据库出现lock的处理方法 故障现象: 启动sam_cmode进程不能正常处理工单。 故障描述: 启动以sam_cmode –d方式启动发现sam_cmode始终在处理一个用户......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE