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

如何翻转阵列的一部分?

如何解决《如何翻转阵列的一部分?》经验,为你挑选了2个好方法。

我需要翻转一个数组的一部分,保持其余部分不变.我有一个翻转整个数组的函数,但是......要使用它,我必须从我的数组中取出一部分,用函数翻转它并将其粘贴到它的位置.它不舒服而且不那么快.我需要一种工作速度非常快的方法.

例:

int array[10] = {1,2,3,4,5,6,7,8,9,10};
flip(array,2,6); //Flip the part between index 2 and 6

之后,数组应如此:

{1,2,7,6,5,4,3,8,9,10}

请帮忙,我需要一个非常快速的回答......



1> eerorika..:

标准库中有一个算法正是为此: void reverse( BidirIt first, BidirIt last );



2> Ardavel..:

以下是如何使用std :: reverse函数解决问题的示例.

#include 
#include 

int main() {
    int array[10] = {1,2,3,4,5,6,7,8,9,10};
    std::reverse(array + 2, array + 7);
    for (int i = 0; i < 10; ++i) {
        std::cout << array[i] << " ";
    }
}

请注意,我将示例中的索引2和6替换为2和7.这是因为std :: reverse会反转[first,last]范围内的元素.

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