SV数据类型五:数组的方法

数组的方法

背景

内容基于绿皮书2.7,简单描述数组中的常用方法

核心内容

  1. 数组的缩减
  2. 数组的定位
  3. 数组的排序

我的理解

在很多使用数组的场景中,我们需要对数组进行处理,sv提供了一些快速处理的方法。

数组的缩减

一些对数组的整体操作

my_array.sum:数组求和
my_array.product:数组求积
my_array.or:数组按位或
my_array.xor:数组按位异或
my_array.and:数组按位与

可以使用with (条件)来进行操作,比如
count = my_array.sum with (item > 7)这个返回的是数组中大于7的值的个数
total = my_array.sum with ((item > 7) * item)这个返回的是数组中大于7的值的总和
total = my_array.sum with (item > 7 ? item : 0)这个结果同上

数组的定位

找出数组中的特殊值

my_array.min:找到数组中的最小值
my_array.max:找到数组中的最大值
my_array.unique:去掉数组中重复值

find方法一般会与with (条件)一起使用,比如my_array.find with (item > 3)就是找到数组中大于3的值。

my_array.find:找到数组中符合条件的值
my_array.find_index:找到符合条件值的位置
my_array.find_first:找到第一个符合条件的值
my_array.find_last:找到最后一个符合条件的值
my_array.find_first_index:找到第一个符合条件的值的位置
my_array.find_last_index:找到最后一个符合条件的值的位置

数组的排序

对数组进行重新排序,如果想要保留原来数组的顺序,需要将原数组复制一份再进行操作

my_array.reverse():将数组反序
my_array.sort():按数组值从小到大排序
my_array.rsort():按数组值从大到小排序
my_array.shuffle():将数组乱序

reverse和shuffle不能带with,sort和rsort可以对结构体子域进行排序,后续再介绍

实战要点

  • 工作中可以这么用:在数组中一些find操作看似多此一举,但是在自定义的数据中是非常有意义的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值