友人の Qt コードを見つけたのですが、彼はQString
次のように 2 つの s でモジュロ演算子を使用しています。
QString result = oneString % twoString;
どういう意味ですか?
マニュアルQString
で説明されているように、 sを連結する別の (より効率的な) 方法です。
QStringBuilder は式テンプレートを使用し、'%' 演算子を再実装するため、'+' の代わりに '%' を文字列連結に使用すると、最終結果が QString に割り当てられる直前まで複数の部分文字列連結が延期されます。この時点で、最終結果に必要なメモリ量がわかります。次に、必要な領域を取得するためにメモリ アロケータが 1 回呼び出され、部分文字列が 1 つずつコピーされます。
これは、文字列構築の Qt 固有の方法です。このページを見てください。
QStringBuilder は式テンプレートを使用し、'%' 演算子を再実装するため、'+' の代わりに '%' を文字列連結に使用すると、最終結果が QString に割り当てられる直前まで複数の部分文字列連結が延期されます。この時点で、最終結果に必要なメモリ量がわかります。次に、必要な領域を取得するためにメモリ アロケータが 1 回呼び出され、部分文字列が 1 つずつコピーされます。