我今天把代码优化到处理c语言,用2秒钟.(原来需要10s).
不过还是没法更flex 比,它的时间<1s.
随便写写开发过程中的几点体会,可能和lex本身没有太大的关系.
- 尽量不要用string . C++ 的string做的效率不高.
- 不要使用magic number . 可以定义称const int 的就定义成const int.
- 宏是万恶之源.如果一定要用,名字取长一点.
- 用好typedef
- 单元测试很重要.
- 学会用工具分析性能.
- 正则表达式很奇妙
- 中文的编码是负的.
我今天把代码优化到处理c语言,用2秒钟.(原来需要10s).
不过还是没法更flex 比,它的时间<1s.
随便写写开发过程中的几点体会,可能和lex本身没有太大的关系.
用惯了python ,php 等语言,现在觉的C++用起来很多地方很不爽.今天写的很郁闷.
当然我知道这很多并不是C++的错. 纯粹发发牢骚.
这几天在写编译原理的课程设计。
第一部分就是实现一个SEU-lex.
花了将近一个礼拜的时间,基本把核心算法(RE->DFA->DFA->min DFA)给搞定了.
C++ 好久不用,有点生疏了,遇到了很多问题.
等把程序完全写完了,再好好整理整理一下.
今天先说刚遇到的一个关于iterator问题.
我用一个iterator 访问一个vector, 同时有往vector里面加入新的元素.
但iterator迭代到新加入的元素是会出现错误.(类似空指针)
看来有空还要好好看看STL的书,把这些个概念搞清楚.
最近评论