trie实现&&字符编码&&graphviz

来源:互联网 发布:紫微命盘分析软件 编辑:程序博客网 时间:2024/06/13 16:33

很菜的编码。效率,时间,空间,伤心的问题。小试一把c++模板,非常强大。函数对象,比函数指针强多了。tree数据结构用的孩子表示法。一个vector。。。见过高手用递归map表示的,很强!因为整个trie就是一个递归的数据结构。trie后面还有suffix trie,suffix tree。更多trie资料见wikipedia.

加入了编码(TCHAR)的东西,支持中文。

生成了graphviz用的dot图文件。这是个好东东。可以画各种图。配合其他工具,可以画函数调用图。

windows下装好graphviz,在cmd下,dot -O -Tpng -Efontname="宋体" trie.dot,就可以生成图了。命令行用法见官网。哦,生成的原始文件时MBCS编码的,需要转换成UTF-8编码(ultraedit就可以啦),在运行dot命令。(请确认bin目录在搜索路径中+_+)我的提示有warning,不过貌似没关系的!

graphviz支持中文也挺简单的,首先文件中中文要是utf-8编码,再指定字体就可以了。命令行或者文件中指定都可以。

编码方面的东东。这个程序要是在linux下运行如果输出,文件是啥编码?……utf-8,哦,首先linux本身要是utf-8得。⊙﹏⊙b汗。。因为ofstream设置locale了~~设置成跟系统locale一样的了。参数是空字符串。。在输出时,c/c++库到操作系统之间应该做了一层转换。。。。

windows下locale不能设置成UTF-8,见MSDN。The set of available languages, country/region codes, and code pages includes all those supported by the Win32 NLS API except code pages that require more than two bytes per character, such as UTF-7 and UTF-8.

能设置的话,就直接utf-8输出到文件了。

 

我也没在linux试过,+_+。本程序在vs2008下调试通过。

vs2008默认是unicode的,其实是ucs2。也就是wchar_t。

 

原创粉丝点击