概述
SV引入一个新的数据类型-队列,它结合了链表和数组的优点,可以在队列中的任何地方添加或者删除元素;但队列不是数组,它的元素个数不一样,也不需要new,并且很方便添加或删除元素。
队列的声明使用[$],元素的编号从0到$:
program example1;
int j=1, q2[$]={3,4}, q[$]={0,2,5};//声明队列,并初始化一些元素
initial begin
q.insert(1, j);//在q队列的第二个元素(排列位置从0开始数)之前插入j,队列q变成{0,1,2,5}
q.insert(3,q2[0]);//在q队列的第四个元素(排列位置从0开始数)之前插入q2队列的第0个元素,q变成{0,1,2,3,5}
q.insert(4,q2[1]);// 插入队列q2的元素,队列q变成{0,1,2,3,4,5}
$display(q);
q.delete(1);//删除第1个元素(排列位置从0开始数), 队列变成{0,2,3,4,5}
q.push_front(6);//在队列前插入6, q队列变成{6,0,2,3,4,5}
j = q.pop_back;//把最后一个元素pop出来,赋值给j, j=5, q队列变成{6,0,2,3,4}
q.push_back(8);//在队列尾部插入8, q队列变成{6,0,2,3,4,8}
j = q.pop_front;//把第一个元素pop出来,赋值给j, j=6, q队列变成{0,2,3,4,8}
foreach (q[i]) $display(q[i]); //打印整个队列
q.delete();//删除整个队列
end
endprogram
队列索引的另一种表示方法,如果把$放在一个范围表达式的左边,那么$代表最小值;如果把$放在一个范围表达式的右边,那么$代表最大值。例如:队列共有4个元素[0:3], [$:2]代表[0:2], [2:$]代表[2:3] 。
program example2;
int j=1, q2[$]={3,4}, q[$]={0,2,5}; //声明队列,并初始化一些元素
initial begin
q={q[0], j, q[1:$]};//在q队列q[0]元素后插入j, 队列q变成{0,1,2,5}
q={q[0:2], q2, q[3:$]};//在q队列q[0:2]元素后插入队列q2,队列q变成{0,1,2,3,4,5}
q={q[0], q[2:$]};//删除第1个元素, 队列变成{0,2,3,4,5}
q={6,q};//在队列前插入6, q队列变成{6,0,2,3,4,5}
j = q[$];//j=5
q=q[0:$-1];//删除最后一个元素, q队列变成{6,0,2,3,4}
q ={q,8};//在队列尾部插入8,q队列变成{6,0,2,3,4,8}
j = q[0];//j=6,q=q[1:$],去掉第一个元素,q队列变成{0,2,3,4,8}
q={};//删除整个队列
end
endprogram
上面两种操作方法都可以很方便的对队列中的元素进行操作,选择自己顺手的即可。
最后
以上就是魔幻刺猬为你收集整理的SV学习笔记—队列及方法的全部内容,希望文章能够帮你解决SV学习笔记—队列及方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复