奇怪的Qt代码与字符串

时间:2012-08-19 16:12:52

标签: c++ qt qstring

我找到了朋友的Qt代码,他在两个QString上使用了模运算符:

QString result = oneString % twoString;

这是什么意思?

2 个答案:

答案 0 :(得分:13)

这是the manual

中描述的连接QString的另一种(更有效的)方法
  

QStringBuilder使用表达式模板并重新实现'%'   运算符,以便当您使用'%'进行字符串连接而不是   '+',多个子串连接将被推迟到   最终结果即将分配给QString。此时,   最终结果所需的内存量是已知的。记忆   然后调用一次allocator以获得所需的空间,并且   子串被逐一复制到其中。

答案 1 :(得分:6)

这是Qt特定的字符串构造方式。看一下这个page

  

QStringBuilder使用表达式模板并重新实现'%'   操作员,以便在您使用'%'用于字符串连接而不是   ' +',多个子串连接将被推迟到   最终结果即将分配给QString。此时,   最终结果所需的内存量是已知的。记忆   然后调用一次allocator以获得所需的空间,并且   子串被逐一复制到其中。