V0第 第13节 数组类型

1.动态数组

  • 与之前的定长数组相比,SV提供了可以重新确定大小的动态数组
  • 动态数组在声明时需要使用[],这表示不会在编译时为其制定尺寸,而是在仿真运行时来确定
  • 动态数组一开始为空,需要使用new[]来为其分配空间
int dyn[],d2[];//声明动态数组
initial begin
	dyn = new[5];	//分配5个元素
	foreach (dyn[j]) 
		dyn[j] = j; //对元素进行初始化
end
  • 内建方法size()可以返回动态数组的大小
  • 内建方法delete()可以清空动态数组,使其尺寸变为0
  • 动态数组在声明时也可以完成其初始化

2.队列

  • SV引入了队列类型,它结合了数组和链表
  • 可以在队列的任何位置添加或者删除数据成员
  • 可以通过索引来访问队列的任何一个成员
  • 通过[$] 来声明队列,队列的索引值从0到 $
  • 可以通过内建方法push_back(val)、push_front(val)、pop_back()和pop_front()来顺序添加或者移除并且获得数据成员
  • 可以通过insert(val,pos)来指定位置插入数据成员
  • 可以通过delete()来删除所有数据成员

3. 缩减方法

  • 基本的数组缩减方法是把一个数组缩减成一个值
  • 最常用的缩减方法是sum,它对数组中的所有元素求和
  • 其它的数组缩减方法还有product(积),and(与),or(或)和xor(异或)
byte b[$] = {2,3,4,5};
int w;
w = b.sum();//14
w = b.product();//120 = 2*3*4*5
w = b.and();//2&3&4&5

4. 定位方法

  • 对于非合并数组,可以使用数组定位方法,其返回值将是一个队列而非一个数据成员
  • 使用foreach也可以实现数组的搜索,不过使用find…with则在查找满足条件的数据成员时,更为方便
  • 可以通过排序方法改变数组中元素的顺序,可以对它们进行正向、逆向或者乱序的排列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值