如何提高此代碼?
優化之前的基準。不要做過早的優化。
超出要點:爲什麼要優化它? 1)如果你真的關心從性能角度來看這個可忽略的代碼很重要的性能,那麼你首先不會使用Qt,因爲Qt本質上比一個非常優化的框架要慢。 2)如果你不關心性能,那麼你應該把可讀性和維護作爲主要原則,在這種情況下你的代碼是好的。
您還沒有顯示任何真實世界的例子,您爲什麼想要優化。這感覺就像一個學術問題,沒有太多實際的用處。瞭解更多關於動機的信息會很有趣。這就是說,一些改進項目也是優化的,可以在你的代碼中完成,但是再次說明:它不是爲了優化而完成的,但更像是邏輯上的原因。
1)Prepender是壞名字;它通常在英語中被稱爲「前綴」。
2)您希望使用QChar而不是QString作爲角色。 3)同樣,對於替換,你希望使用''而不是''字符串''公式。
4)即使它是CoW(隱式共享),我會傳遞類似於引用的類,而不是值語義。
5)我甚至不會在這裏爲前綴使用參數,因爲它總是相同的,所以它不適合變量的定義。
6)不需要明確地創建臨時變量。
7)使函數內聯。
因此,你會寫這樣的事:
QByteArray restoreData(QByteArray data)
{
return QByteArray::fromHex(data.replace('x', ''));
}
你也可以選擇要求方便'刪除(QChar則)'方法像QString的。這甚至會使代碼更具邏輯性,因爲您並未替換原則上的代碼。 – lpapp