System Verilog学习笔记(十二)——数组(2)
动态数组
- 在编译时不会为其定制尺寸,而是在仿真运行时来确定
- 动态数组一开始为空,需要使用new[ ]来为其分配空间
- 声明方式
int dyn[],d2[]; //声明了两个动态数组
initial begindyn=new[5]; //包含5个元素foreach (dyn[j]) dyn[j]=j; //初始化元素d2=dyn; //拷贝数组dyn.delete(); //删除所有元素,原来开辟的空间也清除了dyn=new[0]; //清空元素
end
- .size( )可以返回动态数组的大小
- .delete( )可以清空动态数组,使其尺寸为0
- '{ }可以完成初始化
队列
队列结合了数组和链表,可以在队列的任何位置添加或者删除数据成员,可以通过索引来访问队列的任何一个成员。
- [ $ ]来声明队列,队列的索引值是从0到$
- 通过insert(pos, val)来在指定位置插入数据成员
- 通过delete( )来删除所有数据成员,也可以删除某一个成员
- .push_front ():在队列最前端插入值
- .push_back():在队列最后端插入值
- .pop_back():取出队列最后一个值
- .pop_front():取出队列最前面一个值
- 队列中不能插入队列
关联数组
- 关联数组可以用来存放散列的数据成员,散列的索引类型可以为任意类型(整型,字符串或者其他),存储的数据也可以为任何类型
- .first():得到第一个索引值
- .next():得到当前索引的下一个索引值
缩减方法
- 把一个数组缩减成一个值
- .sum(),它是对数组中所有的元素求和
- .product( ) 所有元素乘积
- .and( ) 所有元素与
- .or( ) 所有元素或
- .xor( ) 异或
定位方法
- .unique( ):返回只出现过一次的元素
- .min( )和.max( ):返回最小和最大值
- .find…with( ):查找满足条件的数据成员
排序方法
- .reverse( ):逆序颠倒
- .sort( ):升序排列
- .rsort( ):降序排列
- .shuffle( ):随机打乱