优化C++中的字符数组成员交换

use*_*413 0 c++

char buffer[256];

for(int x = 0; x<256; x+=4)
{
char one = buffer[x];
char two = buffer[x+1];
char three = buffer[x+2];
char four = buffer[x+3];

buffer[x] = four;
buffer[x+1]=three;
buffer[x+2]= two;
buffer[x+3]=one;
}
Run Code Online (Sandbox Code Playgroud)

我究竟如何优化这个?

eca*_*mur 5

用途std::reverse:

std::reverse(&buffer[x], &buffer[x + 4]);
Run Code Online (Sandbox Code Playgroud)

  • 遗憾的是它有不确定的行为.当`buffer`中只剩下四个元素时,调用`buffer [x + 4]`是一个禁忌.它应该是`buffer + x,buffer + x + 4`.(但基本的想法很好.) (2认同)