欢迎光临
我们一直在努力

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

数组的方法

背景

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

核心内容

  • 数组的缩减
  • 数组的定位
  • 数组的排序
  • 我的理解

    在很多使用数组的场景中,我们需要对数组进行处理,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操作看似多此一举,但是在自定义的数据中是非常有意义的操作
    赞(0)
    未经允许不得转载:171主机测评 » SV数据类型五:数组的方法
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址