当前位置:  开发笔记 > 编程语言 > 正文

有没有更好的方法来反转内存中的字节数组?

如何解决《有没有更好的方法来反转内存中的字节数组?》经验,为你挑选了2个好方法。

标准库具有以下std::reverse功能:

#include 
void ReverseBytes( void *start, int size )
{
    char *istart = start, *iend = istart + size;
    std::reverse(istart, iend);
}


Michael Mann.. 18

不使用STL的高性能解决方案:

void reverseBytes(void *start, int size) {
    unsigned char *lo = start;
    unsigned char *hi = start + size - 1;
    unsigned char swap;
    while (lo < hi) {
        swap = *lo;
        *lo++ = *hi;
        *hi-- = swap;
    }
}

虽然问题是3岁半,但其他人可能会寻找相同的东西.这就是为什么我仍然发布这个.



1> kmkaplan..:

标准库具有以下std::reverse功能:

#include 
void ReverseBytes( void *start, int size )
{
    char *istart = start, *iend = istart + size;
    std::reverse(istart, iend);
}



2> Michael Mann..:

不使用STL的高性能解决方案:

void reverseBytes(void *start, int size) {
    unsigned char *lo = start;
    unsigned char *hi = start + size - 1;
    unsigned char swap;
    while (lo < hi) {
        swap = *lo;
        *lo++ = *hi;
        *hi-- = swap;
    }
}

虽然问题是3岁半,但其他人可能会寻找相同的东西.这就是为什么我仍然发布这个.


机会已经实现:)
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有