11

友人の Qt コードを見つけたのですが、彼はQString次のように 2 つの s でモジュロ演算子を使用しています。

QString result = oneString % twoString;

どういう意味ですか?

4

2 に答える 2

15

マニュアルQStringで説明されているように、 sを連結する別の (より効率的な) 方法です。

QStringBuilder は式テンプレートを使用し、'%' 演算子を再実装するため、'+' の代わりに '%' を文字列連結に使用すると、最終結果が QString に割り当てられる直前まで複数の部分文字列連結が延期されます。この時点で、最終結果に必要なメモリ量がわかります。次に、必要な領域を取得するためにメモリ アロケータが 1 回呼び出され、部分文字列が 1 つずつコピーされます。

于 2012-08-19T16:15:43.453 に答える
6

これは、文字列構築の Qt 固有の方法です。このページを見てください。

QStringBuilder は式テンプレートを使用し、'%' 演算子を再実装するため、'+' の代わりに '%' を文字列連結に使用すると、最終結果が QString に割り当てられる直前まで複数の部分文字列連結が延期されます。この時点で、最終結果に必要なメモリ量がわかります。次に、必要な領域を取得するためにメモリ アロケータが 1 回呼び出され、部分文字列が 1 つずつコピーされます。

于 2012-08-19T16:16:07.817 に答える