C++技巧:用metric_t轻松收集数据(一)

ZDNet软件频道 时间:2003-01-06 作者:BUILDER.COM |  我要评论()
本文关键词:cpptips
为了分析用户使用应用程序的情况,程序的开发者常常需要收集数据,如一个用户在使用了多少次,有多少个用户注册了你的程序等等。

为了分析用户使用应用程序的情况,程序的开发者常常需要收集数据,如一个用户在使用了多少次,有多少个用户注册了你的程序等等。

收集好数据之后、分析数据之前,你需要删除某些极端的数值(通常是最大值和最小值)。如果你不这么处理,那么分析的结果可能就不准确。

例如,如果你分析过去一个月你的网站日访问量。一般都是每天有100-200人访问,但是有两天,访问人数为2000。如果你不考虑这两天的异常情况,最终的平均访问量是290而不是150左右,这显然是不准确的。

你可以用metric_t< type>对给定类型数据进行收集进行异常数据处理。为了可以使用metric_t,需要把所有数据收集到一个容器中。然后创建一个metric_t对象,指定它的排除多少个最大/最小元素以及一个可选的判定(predicate)。

这个判定用来表明“最大值”和“最小值”的门限。当你计算一个文本文件中单词的平均包含多少个字母时,该判定应该来比较字符串的长度(而不是字符串本身)。如果没有提供该判定,你可以使用std::less< type>

下面是如何建立metric_t对象:

metric( container, nExcludeLower, nExcludeUpper [,pred])::计算容器中数据的metric,不包括最小(nExcludeLower)元素和最大(nExcludeUpper)元素;它也用pred作为predicate来表明最小值/最大值的权重。

下面是你使用它的方法:

代码下载

本文的第二部分将详细介绍metric_t,并提供几个复杂一些的例子来演示如何使用metric_t对象。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134