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


目录
相关文章
每日一道面试题之在 Queue 中 poll()和 remove()有什么区别?
每日一道面试题之在 Queue 中 poll()和 remove()有什么区别?
|
3月前
|
安全 Java 开发者
Poll() 和 Remove() 方法之间的区别
【8月更文挑战第22天】
141 1
|
网络虚拟化 网络架构
dis ip int brief命令的作用是什么?
dis ip int brief命令通常是指在设备上查看路由器或交换机接口的摘要信息。这个命令的目的是显示设备上所有接口的基本信息,包括接口的状态、IP地址、协议等。
|
6月前
|
监控 Linux
Linux的epoll用法与数据结构data、event
Linux的epoll用法与数据结构data、event
88 0
|
6月前
|
算法 安全 编译器
C++:模版进阶 | Priority_queue的模拟实现
C++:模版进阶 | Priority_queue的模拟实现
|
存储 算法 C语言
【C++初阶】十一、STL---priority_queue(总)
目录 一、priority_queue介绍 二、priority_queue使用 三、仿函数 四、priority_queue模拟实现 4.1 版本1 4.2 版本2
114 0
【C++初阶】十一、STL---priority_queue(总)
|
C语言 C++ 容器
C++中queue的用法(超详细,入门必看)
⭐一、queue的简介 queue的中文译为队列,队列是一种数据结构。C语言中队列的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的queue让这些都变得简便易实现。因为C++中有着许多关于queue的方法函数。 队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。 举个生活中的例子吧。
976 0
|
C++ Python 容器
C++中pair用法
⭐pair的简介 pair是C++STL(标准模板库)中的一个现有容器,它将2个数据整合成一组数据,当我们类似需求的时候就可以使用到pair啦!pair其实有点像Python中字典中的键值对(Key-Value),一个Key对应着一个Value。pair的本质其实就是个结构体,它含有两个成员变量first和second。因为使用的是struct不是class,所以在定义后是可以直接使用pair中的成员变量的。 其标准库类型–pair类型定义在#include< utility > 头文件中
359 0
【SV】记录UVM/SV使用过程中遇到的生僻知识点
【SV】记录UVM/SV使用过程中遇到的生僻知识点
130 0
|
C++ 容器
queue以及使用举例--C++基础
queue以及使用举例--C++基础
122 0
queue以及使用举例--C++基础