我想在取景器中旋转相机。我的想法是获得QByteArray并旋转它,因此像素在X和Y方向上显示为镜像。 所以如果我的数组看起来像这样:
5 2 6 8
3 5 2 1
6 7 4 5
3 2 1 7
它应该是这样的:
7 1 2 3
5 4 7 6
1 2 5 3
8 6 2 5
有人可以告诉我怎么做吗?
答案 0 :(得分:3)
你可以像这样使用std :: reserve
#include <algorithm>
QByteArray reverse = barr;
std::reverse(reverse.constBegin(), reverse.constEnd());
或使用此
QByteArray reverse;
std::reverse_copy(barr.constBegin(), barr.constEnd(), reverse.begin());
答案 1 :(得分:0)
您如何访问QByteArray
?
如果迭代器是可接受的解决方案,您可以执行以下操作:
for(std::reverse_iterator<char*> rBegin(myQByteArray.data() + myQByteArray.size()); rBegin != std::reverse_iterator<char*>(myQByteArray.data()); ++rBegin){
std::cout << *rBegin << " ";
}
请注意,如果您要使用const char* QByteArray::data()
来电,只需在模板中使用std::reverse_iterator
初始化const
:
std::reverse_iterator<const char*> rBegin(myQByteArray.data())