c++ builder 中 char 和 AnsiString字符串对比 效率慢的解决办法

来源:互联网 发布:淘宝 没销量 换宝贝 编辑:程序博客网 时间:2024/06/11 03:17
在以往的c++开发经验中 我不太喜欢在结构体中直接使用AnsiString 类,而是采用char类型代替。 因为涉及到内存复制类或者指针引用是常常会出现莫名奇妙的问题。并且可移值性差。在以往需要处理字符串对比时常常这样写
char *S1AnsiString A1if (AnsiString (S1)==A1){      .......................具体处理内容。}
但是如果将上述语句写到一个循环语句中就会发现
AnsiString (S1)执行特别耗时。如果在主进程中就会引起界面反映慢,或者不太明显的卡顿。

今天 测试了使用strcmp(S1,A1.c_str())代替处理。。发现效率高的太多了。。原因可能是和AnsiString类的内容改变要重新申请内存导致效率低原因。

今天只是进行简单测试。这两天再试试没有问题,以后就用这种方法了。但是以前有好多代码都是用构造函数对比写的。效率肯定会特别低的。。以后还要慢慢的改老程序 。。

0 0