std::tr1全身都是宝计算机等级考试
文章作者 100test 发表时间 2010:01:08 18:38:47
来源 100Test.Com百考试题网
今日因为对项目进行重构,开始接触到std::tr1下的一些内容,开始对自己以前不太熟悉的泛型编程有了一些比较深入的了解。最近用到了tr1名字空间下的mem_fn,regex都在我们对项目的重构中起了重要的作用。tr1成为传统C 的有益补充。这里我们来看一下我利用regex对原来几个函数的重构。
首先是一个判断一个字符串是否是一个数字的函数,在原来的实现中,我的检查并不完全,有时候又漏桶。利用regex,就可以很好地覆盖各种情况,完成比较严密的数字检查。我的项目中,对数字的要求是浮点数或者是浮点数加上字符后缀。列入,0.124,451.2A,-34.4TD等都是合法的数字。我在网络流传广泛的正则表达式的基础上做了些修改,轻松完成了这个函数。
bool GridColChecker::IsNumber( wstring strText )
{
// check character or number
trim(strText).
wregex rx(_T("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0 |0|[1-9]\\d*)[A-Z]{0,2}$")).
//wregex rx(_T("^-?\\d*[.]\\d*[A-Z]{0,2}$")).
return regex_match(strText, rx ).
/*
int nCheck = 0. // first char
if (strText.size()