前面碰到的正则表达式匹配时,产生的内存耗尽异常,大概提到两种方案,一种是给匹配建立线程,超时时把它杀死。另一种则从其根源上看,即正则表达式产生内存耗尽异常的原因是,由于匹配是个np完全问题,为了避免无限执行下去,所以实现中一般对匹配中达到的状态进行了计数,当状态达到了一定数目则抛出这个异常。
1.产生输入:debug_log("InputProducer Constructor:" ,"succefull!");
2.生成请求:debug_log("Request Constructor:" ,"succefull!");
3.监控getNextUrl:
debug_log(info.source_site_name+"-SearchExpression::getNextUrl:" ,"get Next:" + itoa(m_start) + "-" + itoa(m_end));
实际上根本原因在正则表达式写的不够简洁正确,具有歧义。
The problem here is that matching a back-reference is an NP-complete problem – Boost.Regex has a built in limiter that causes it to throw an exception rather than go on trying to find a match "for ever". Other engines just carry on regardless – so while they may find a match in this particular case (eventually), with a bit more text they might equally well hang the machine. In short, there ain’t no good solution except to rewrite your regular expression 🙁 Can’t help much there as I can’t tell what you’re trying to do from the Japanese.
1.由于某位在修改的时候,把拷贝赋值函数全部重新写了下,但是漏掉了一个变量的赋值,导致其值为空,调试半天。
结论:代码修改要注意,应当保证修改是必要的,而且修改后应进行基准测试
2.变量定义的时候,之前加了句#define debug 来控制某些调试代码的输出
from:http://www.snowhack.com/blog/catalog.asp?cate=10
1、百度网页搜索的查询参数
必备参数
☆ wd–查询的关键词(Keyword)
☆ pn–显示结果的页数(Page Number)
☆ cl–搜索类型(Class),cl=3为网页搜索
可选参数
☆ rn–搜索结果显示条数(Record Number),取值范围在10–100条之间,缺省设置rn=10
☆ ie–查询输入文字的编码(Input Encoding),缺省设置ie=gb2312,即为简体中文
☆ tn–提交搜索请求的来源站点
几个有用的tn
tn=baidulocal 表示百度站内搜索,返回的结果很干净,无广告干扰。比如,在百度站内搜索“快乐”,看看返回结果是不是很清爽。
tn=baiducnnic 想把百度放在框架中吗?试试这个参数就可以了,是百度为Cnnic定制的
from:http://www.snowhack.com/blog/catalog.asp?cate=10
必备参数
☆ q–查询的关键词(Query),百度对应的参数为wd
☆ hl–Google搜索的界面语言(Interface Language)
常用的有:
hl=zh-CN 简体中文语言界面,我们用的Google中文就是这个参数。
hl=zh-TW 繁体中文语言界面,港台地区常使用
最近在用正则表达式,分析网页抽取结果的时候,碰到了一些问题,大体做个记录
1.子表达式,利用()可以抽取出,匹配的字符串中的一个字段
比如,用来抽取google的,搜索结果,可以这样写(?<=<li class=g>).*?<.*?><a.*?href="(.*?)"[^>]*?>(.*?)</a>(.*?)<br>.*?<cite>(.*?)</CITE>.*?(?=</a></span>.*?</div>)。其中里面的一些()(当然不全是,比如带问号的{?<=<li class=g>)},就是为了抽取更进一步的字段设立的,比如链接,标题,摘要等。
基础知识:
grep:
grep实际来源自命令行编辑器,可以这样理解它的名称来源g/re/p:其中g代表global,re代表regex,p代表print;意思就是全局正则表达式匹配并打印。实际上gerp的命令格式是这样的:grep -c "patten" filename filename,其中patten是正则表达式。所有grep主要完成在输入中进行正则表达式匹配的,并输出相关信息的功能。
线段树就像树状数组一样,通过将一个长为n的段落,划分为O(logn)个子段落,这样就可以通过维护子段落的属性,来求得整个段落的属性。可以证明,任何一个子段在一颗线段树上不会被划分为超过2logn个子段。
一个典型的线段树如下:
仙鹤神针
水月十三刀
护花铃
月夜斩
独臂刀
风铃中的刀声
水月门
大地飞鹰
剑气萧萧孔雀翎
古剑山庄
刀剑笑
六刺客
飞燕金刀
为了支持交叉编译,可能需要修改的内容项目
一.需要修改的变量:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
注意要先更新源更新系统,然后再安装安装中文支持和输入法SCIM
中文环境的话,就是 系统->系统管理->语言支持
英文环境( System->Administration->Language Support)
当你第一次设置语言支持时,可能会弹出一个对话框,提示你the language support is not installed completely(语言支持没有完全安装),这时候点安装,就可以安装更多的语言支持。
dev c++下安装
1.将regex编译成静态库
在dev c++下建立一个项目,选择static libray类型,然后将boost_1_37_0\libs\regex\src下的所有源代码导入到该工程,编译该工程。
将生成的regex.a改名为libregex.a,放到C:\Dev-C++\lib下,注意前缀必须是lib
设置将要使用regex的新工程的include文件路径,使其包含boost/regex.hpp
作为一个良好的思考者,不会轻易去相信别人的主张,不会人云亦云,怀疑精神是批判性思维的基础。在批判性思维者的心中有那么的一把尺子去评价别人的主张,当我们的心中也存在着这样的一把尺子的时候,我们就具备了批判性的思维。
通常人们会犯两种错误,一种是低估了问题的难度,一种是高估了问题的难度。这样的两种错误,通常又会导致同一种后果,不去尝试解决问题。一种是不屑,一种是不敢,同样的后果最终导致解决问题的能力低下。对于实现的观点也是如此。
John E. Hopcroft and Robert Tarjan
Citation
For fundamental achievements in the design and analysis of algorithms and data structures.
———————————————————————-
1986年的图灵奖由康乃尔大学机器人实验室主任约翰·霍普克洛夫特(John Edward Hopcroft)和普林斯顿大学计算机科学系教授罗伯特·陶尔扬(Robert Endre Tarjan)共享,而陶尔扬曾是霍普克洛夫特的学生。这师生两人由于在数据结构和算法的设计和分析方面的众多创造性贡献而共同获此殊荣,在业界传为美谈。
两年前的日志了———————————————
现在的生活…
2006-12-05 09:34:57
这周就要考网络安全了,于是去图书馆,看相关的网络安全书籍,还要做网络安全的实验。很多的时间也放在了网上,有时候去bmy的几个技术版面,java, c&c++,算法,计算机程序设计逛逛。在se,mood灌灌水,今天又拿到了新斑竹的棒棒糖。生活就是这样度过的,晚上去学院被那机子搞郁闷了 之后,便去图书馆了,然后是康三的书店,或许可以在周末去西安的书城看书,也是一种不错的消遣。
历史上,Knuth在其<<Sorting and Searching>>一书的第6.2.1节指出:尽管第一个二分搜索算法于1946年就出现,然而第一个完全正确的二分搜索算法直到1962年才出现。
而不经仔细斟酌而写出的一个二分查找经常遭遇off by one或者无限循环的错误。下面将讨论二分查找的理论基础,实现应用,及如何采用何种技术保证写出一个正确的二分程序,让我们免于思考麻烦的边界及结束判断问题。
作为思维的一种方法,类比大概是其中最重要的一种。
陈胜说"王侯将相,宁有种乎",必然是经过一番比较的。仿生学的产生,比如潜艇,飞机,军装的颜色便是一种生物的模仿。了解下蜂房的构造,有助于人类建筑的改进。王阳明格物致知,格竹,这也是一番类比。类比一番,你会发现宏观世界与微观世界的惊人相似,天体力学与原子力学是统一的,光就是一种电磁波。大多数的不幸都是类似的,大多数的幸福也是类似的。时间空间本身就是人类的一种空想,梦境与真实实际上是如此模糊不清。
走进2009的第一天,我才发现我的生日已然在几天前过去了,不过我向来对生日之类的节日不感冒,自己也很少会为了生日做些特殊的事情。
还是想想2008吧,日子如水一般,平静的流淌过。这样久违的日子终于又回来了,上半年在校园里悠哉悠哉的晃着。在图书馆里自由自在的翻着书,享受着大学的生活。可是到现在我能记起来的这一年里发生的事情,果真是太有限了。