如何在C ++中更改数组的顺序

时间:2018-08-04 04:18:38

标签: c++ arrays random char

我试图像这样更改char数组的顺序:

char arr_char[]="ABCDEFGHIJABCDEFGHIJ";

我在以下代码中使用了rand()函数:

#include <iostream>
#include <cstdlib>
#include <ctime>


using namespace std;



int main()
{
  char arr_char[]="ABCDEFGHIJABCDEFGHIJ";
  int arrSize=sizeof(arr_char)-1;

  srand(time(0));

 for(int i=0;i<20;i++)
 {
    cout<<arr_char[rand() % arrSize]<<" ";
 }
}

但是rand函数将某些字符重复两次以上,而我想更改数组的顺序,其中每个字符仅重复两次而不更多。

1 个答案:

答案 0 :(得分:3)

这可能就足够了

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    string arr_char = "ABCDEFGHIJABCDEFGHIJ";
    random_shuffle(arr_char.begin(), arr_char.end());
    cout << arr_char;
}