【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队列及数组方法


目录
相关文章
|
9月前
|
网络虚拟化 网络架构
dis ip int brief命令的作用是什么?
dis ip int brief命令通常是指在设备上查看路由器或交换机接口的摘要信息。这个命令的目的是显示设备上所有接口的基本信息,包括接口的状态、IP地址、协议等。
|
3月前
|
算法 安全 编译器
C++:模版进阶 | Priority_queue的模拟实现
C++:模版进阶 | Priority_queue的模拟实现
|
8月前
|
编译器 C语言
__builtin_return_address()函数的使用方法
__builtin_return_address()函数的使用方法
93 1
|
C语言 C++ 容器
C++中queue的用法(超详细,入门必看)
⭐一、queue的简介 queue的中文译为队列,队列是一种数据结构。C语言中队列的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的queue让这些都变得简便易实现。因为C++中有着许多关于queue的方法函数。 队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。 举个生活中的例子吧。
761 0
|
存储 算法 C语言
【C++初阶】十一、STL---priority_queue(总)
目录 一、priority_queue介绍 二、priority_queue使用 三、仿函数 四、priority_queue模拟实现 4.1 版本1 4.2 版本2
104 0
【C++初阶】十一、STL---priority_queue(总)
|
Linux
465/1000:linux中查询命令"ll"和"find"的区别
465/1000:linux中查询命令"ll"和"find"的区别
129 0
|
存储 Perl
Verilog读书笔记---数据类型、系统任务、`define、parameter、localparam三者的区别
Verilog读书笔记---数据类型、系统任务、`define、parameter、localparam三者的区别
436 0
Verilog读书笔记---数据类型、系统任务、`define、parameter、localparam三者的区别
【SV】记录UVM/SV使用过程中遇到的生僻知识点
【SV】记录UVM/SV使用过程中遇到的生僻知识点
97 0
|
C++ 容器
queue以及使用举例--C++基础
queue以及使用举例--C++基础
107 0
queue以及使用举例--C++基础
【TP5.1】Config的用法
【TP5.1】Config的用法
270 0
【TP5.1】Config的用法