数据结构中数组反转与STL库Algorithm中的reverse

数组是个基本的线性数据结构,其实是内存中的一个块,我们可以通过c++的new来分配一个数组

int* a= new int[5]; 

然后填数组的每个元素

a[0]=1;

a[1]=2;

a[2]=6;

a[3]=4;

a[4]=5;

这个数组连续放着 1 2 6 4 5

下面编写反转函数,将数组的第i 和第n-1-i元素交换

void reverseArray(int* ar, int n)

{

     int m=n/2;

     for (int i=0;i<m;i++)

     {

          int temp=ar[i];

          ar[i]=ar[n-1-i];

          ar[n-1-i]=temp;

      }

}

如果使用stl标准模板库,在algorithm中提供了反转函数reverse,

通过泛型,可以反转int型数组,char型,string型等等,例如

#include<algorithm>

#include<vector>

int main()

{

    std::vector<int> a;

    a.push_back(1);

    a.push_back(2);

    a.push_back(6);

    std::reverse(a.begin(), a.end()); //将a中的int序列的1 2 6反转为6 2 1

    return 0;

}

猜你喜欢

转载自www.cnblogs.com/abcstar/p/11651243.html
今日推荐