Como gerar uma matriz de 256 números distintos
Eu tenho isto:
#include <iostream>
using namespace std;
int main()
{
int a[256];
int b;
int k;
for (int i = 0; i < 256; i ++){
b = rand()%256;
k = 0;
for (int j = 0; j< i; j ++)
{
if (a[j] == b){k = 1;}
}
if (k == 0){a[i] = b;}
if (k==1){i--;}
}
return 0;
}
Isso gera uma matriz de números inteiros de 0 a 255. Cada número inteiro ocorre apenas uma vez na matriz. Meu problema é que esse código demora um pouco para ser executado porque, para cada novo número inteiro aleatório, verifico se o número inteiro já está na matriz. Então eu tenho que esperar até que todos os números inteiros de 0 a 255 apareçam como um número aleatório. Minha pergunta é:
Existe uma maneira melhor de fazer isso?