Как улучшить этот код?
Сравните перед оптимизацией. Не выполняйте преждевременную оптимизацию.
Помимо основного вопроса: почему вы хотите его оптимизировать?
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', ''));
}
person
lpapp
schedule
24.05.2014