【SV 基础】queue 的一些用法

简介: 【SV 基础】queue 的一些用法

常用


queue.push_back(val);
queue.push_front(val);
val = queue.pop_back();
val = queue.pop_front();
queue.size();               // 获取 queue 的 size
queue.delete(idx);          // 删除指定 index 的元素
queue.delete();             // 删除 queue 中所有元素
queue.insert(index, val);   // 插入元素



不常用


数组支持的用法,也可以用在 queue 上。

queue = queue.shuffle();    // queue 内元素随机乱序
queue = queue.unique();     // 删除 queue 中的重复元素
queue.min();                // 获取最小值
queue.max();                // 获取最大值
queue.reverse();            // 前后逆序
queue.sort();               // 从小大排序
queue.rsort();              // 从大到小排序
queue.sum();                // queue 内元素求和
queue.and();
queue.or();
queue.xor();
queue.product();




queue 内查找


queue = queue.find(x) with (x==val);   // 查找值为 val 的元素,x 不用提前声明
queue = queue.find(x) with (x!==val);  // 删除 queue 中值为 val 的元素


除了 find,还有 find_index、find_first、find_first_index、find_last、find_last_index 等用法。




在 queue 内外随机选择

std::randomize(val) with {val inside queue};                       // 在 queue 中取随机值
std::randomize(val) with {val inside {queue1, queue2};};           // 在两个 queue 中取随机值
std::randomize(val) with {!(val inside queue);};                   // 在 queue 之外取随机值



参考


  1. SystemVerilog IEEE Std 1800-2017


  1. systemverilog queue 的使用,如何判断元素是否存在


  1. SystemVerilog中队列和数组的随机化


  1. SystemVerilog队列及数组方法


目录
打赏
0
0
0
0
49
分享
相关文章
.Net脱壳工具 de4dot参数说明/简易教程
原文:.Net脱壳工具 de4dot参数说明/简易教程 de4dot  /? 帮助原文  使用方法 de4dot "d:\xx.exe" -p xc -p xc 指定壳类型 , 这里是xc,表示Xenocode壳.
4347 0
|
10月前
|
​geth命令参数详解 1.10.4​
​geth命令参数详解 1.10.4​
83 0
dis ip int brief命令的作用是什么?
dis ip int brief命令通常是指在设备上查看路由器或交换机接口的摘要信息。这个命令的目的是显示设备上所有接口的基本信息,包括接口的状态、IP地址、协议等。
|
9月前
|
nohup 与 >/dev/null 与 2>&1 作用与区别
nohup 与 >/dev/null 与 2>&1 作用与区别
516 0
C++中queue的用法(超详细,入门必看)
⭐一、queue的简介 queue的中文译为队列,队列是一种数据结构。C语言中队列的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的queue让这些都变得简便易实现。因为C++中有着许多关于queue的方法函数。 队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。 举个生活中的例子吧。
1790 0
C++ -- queue 和 stack模拟实现
C++ – queue 和 stack模拟实现 1. queue模拟实现 队列是先进先出的特性,这里要支持vector、list、deque等等,这里queue和stack模拟实现,都是直接复用
94 0
【SV】记录UVM/SV使用过程中遇到的生僻知识点
【SV】记录UVM/SV使用过程中遇到的生僻知识点
191 0
【UVM源码学习】uvm_queue
【UVM源码学习】uvm_queue
766 0
queue以及使用举例--C++基础
queue以及使用举例--C++基础
147 0
queue以及使用举例--C++基础
stack以及使用举例--C++基础
stack以及使用举例--C++基础
175 0
stack以及使用举例--C++基础