11

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

QString result = oneString % twoString;

这是什么意思?

4

2 回答 2

15

QString手册中所述,这只是连接 s 的另一种(更有效)方法

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

于 2012-08-19T16:15:43.453 回答
6

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

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

于 2012-08-19T16:16:07.817 回答