Random Array - Graphcities/DataMaker GitHub Wiki

struct rdArray
{
    int n,typ;
    long long rdMin,rdMax;
    long long isDiff;
    long long rdlist[Maxlen];
    void Shuffle();
    void Insert(int p,ll k);
    void Delete(int p);
};

分别为长度,种类,最小值,最大值,是否互不相同,数列,洗牌函数,插入函数,删除函数。

接下来是 rdArray 中函数的具体功能:

long long& operator()(int x) {...}

重载括号,根据下标指向随机数列的数字。

void Shuffle()

重排列整个数列,时间复杂度与数列长度相关。

void Insert(int p,long long k)

p 位置插入数 k,时间复杂度与数列长度相关。

void Delete(int p)

删除 p 位置的数,时间复杂度与数列长度相关。

std::ostream &operator<<(std::ostream &out,const rdArray &now)

重定义输出流,输出整个数列。

struct rdString:rdArray
{
    int rdsiz;
    char rdletter[50];
};

rdString 继承自 rdArray,实现随机字符串。rdsiz 为字符集大小,rdletter[] 为字符集。

std::ostream &operator<<(std::ostream &out,const rdString &now)

重定义输出流,输出整个字符串。

接下来是关于随机数列的构造函数:

rdArray RandArray(int n,long long rdMin=1,long long rdMax=1ll*1e9,bool isDiff=false)

构造一个随机数列。

rdArray RandRange(int n)

根据 rdArray.Shuffle() 构造一个随机排列。

rdString RandString(int n,long long rdMin=0,long long rdMax=25)

构造一个随机字符串,字符集为字母表的 位置。

rdString RandSpeStr(int n,int rdsiz,char rdletter[])

构造特殊字符集字符串。

rdString RandBrac(int n)

构造一个长为 的随机括号序列。