c – 用于提供高效串联的字符串的模板库
是否有一个等效于字符串的闪电战库(即通过延迟字符串构建直到读取整个表达式来提高字符串构造/操作性能的库)?
Blitz通过模板元编程提高矩阵/向量操作的速度,在编译时从A B C等表达式构建“语法树”,然后评估语法树.例如,这种方法可以提高字符串连接的性能,因为在看到类似s1 s2 s3的表达式之后,结果的大小将是已知的,这样内存分配和复制可以在一个步骤中完成,而不是首先为s1 s2分配内存,复制,为(s1 s2)s3分配内存,然后再次复制. 解决方法
我知道QString使用表达式模板来确定最终字符串的大小,并事先有效地分配它.我认为底层代码并不那么难,并且可以与大多数现有的字符串类一起使用.从Qt 4.8手册:
看一下wiki on the subject的技术示例. 请注意,这确实会干扰像decltype(a b)或auto c = a b这样的东西,其中使用表达式模板运算符,因为返回的类型是代理类型,而不是a或b的原始类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |