奇怪的Qt代码与字符串

rub*_*nvb 9 c++ qstring qt

我发现了我朋友的Qt代码,他在两个上使用模运算符,QString如下所示:

QString result = oneString % twoString;
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

cni*_*tar 13

它只是另一种(更有效的)连接方式,QString如手册中所述

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


bes*_*and 6

它是Qt特定的字符串构造方式.看看这个页面.

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