c++ - 使用字符串识别对象 : what's the purpose?

标签 c++ string identifier ogre3d

例如 OGRE3D 使用字符串来标识对象,因此每次代码使用对象的名称(字符串)对对象执行某些操作时,它都必须执行字符串操作,并且由于 3D 引擎对速度非常敏感,因此如何这是一个很好的方法吗?

当计算机必须对字符串进行操作时,它会按顺序执行,一个字节接一个字节,因此如果字符串较长,它会花费更多的 CPU 周期...

在代码中使用纯变量名而不是使用字符串标识符会不会更快?

最佳答案

是的,在代码中使用纯变量名而不是使用字符串标识符会更快。但有时您在构建时不知道这些名称。然后您需要一种动态处理名称的方法。另一种方法可能是只使用原始整数而不是字符串。可以使用散列或字符串查找表生成整数值。但是使用字符串不会严重减慢你的程序,除非你有很多非常长的字符串,它们都有相同的起始字符,最后只有几个不同的字符。通常,比较字符串应该相对较早地导致错误结果,并且只有对于“真正匹配”,才需要完全比较两个字符串。然而,比较一些字符串以在组织良好的搜索结构(如树等)中查找对象并不是 3D 引擎的瓶颈,因此不应成为优化问题的一部分

关于c++ - 使用字符串识别对象 : what's the purpose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013250/

相关文章:

facebook - 应用因 AdSupport.framework 而被拒绝

ios - Xcode 无法使具有标识符的单元格出列

c++ - 创建 OpenCV 非免费版本 v4.3 时出错,collapsable.cpp -errors C2039、2605

c++ - 将对象格式化为字符串

swift - 将字符串拆分为每个数组中具有最大变量的数组

c++ - 一个关于字符串的最大子序列的程序

c++ - 如何在 C++ 的模板定义中使用 lambda?

c++ - 当通过它们访问对象属性/方法时,指向对象的全局指针将因访问冲突而中断程序

python - 从 c 字符串创建可用的 python 函数(sympy 用例)

c - 如何在 gcc 中列出外部标识符?