C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 修剪功能的执行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的旧修剪功能
String TailTrimString (const String & ssource,const char *chars) {
  size_t End = ssource.find_LAST_Not_of(chars);
  if (End == String::npos) {
    // only "*chars"
    return "";
  }
  if (End == ssource.size() - 1) {
    // noting to trim
    return ssource;
  }
  return ssource.substr(0,End + 1);
}

而不是它我决定使用boost,写下了琐碎的事情:

String TailTrimString (const String & ssource,const char *chars) {
    return boost::algorithm::trim_right_copy_if(ssource,boost::algorithm::is_any_of(chars));
}

我惊讶地发现新功能的工作速度要慢得多.
做了一些分析,我发现函数is_any_of非常慢.

boost的实现是否可能比我非常简单的实现慢?有什么@R_131_10675@用而不是is_any_of来提高性能

我还在boost的邮件列表中找到了关于此问题的discussion,但我仍然不确定如何提高代码性能.

我使用的升级版本是1.38,这是相当古老的,但我想这段代码从那以后没有太大变化.

谢谢.

解决方法

当然.

是的 – 你的原始代码.你没有说它有缺陷,或者你使用boost重新实现它的原因.如果原始代码中没有缺陷,则没有合理的理由放弃原始实现.

将Boost引入代码库是有道理的.它带来了许多有用的功能.但是,为了使用新技术的唯一目的而掏空功能一个很大的新手错误.

编辑:

回应你的评论

旨在为一个特定应用程序执行一项特定作业的手工制作功能通常比通用解决方案更快. Boost是一个很棒的通用工具库,可以节省大量的编程和许多缺陷.但它的通用.您可能只需要以特定方式修剪字符串,但Boost会处理所有内容.这需要时间.

大佬总结

以上是大佬教程为你收集整理的c – 修剪功能的执行全部内容,希望文章能够帮你解决c – 修剪功能的执行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。