System Verilog學習筆記(十二)——數組(2)
動態數組
- 在編譯時不會為其定制尺寸,而是在仿真運行時來確定
- 動態數組一開始為空,需要使用new[ ]來為其分配空間
- 聲明方式
int dyn[],d2[]; //聲明了兩個動態數組
initial begindyn=new[5]; //包含5個元素foreach (dyn[j]) dyn[j]=j; //初始化元素d2=dyn; //拷貝數組dyn.delete(); //刪除所有元素,原來開辟的空間也清除了dyn=new[0]; //清空元素
end
- .size( )可以返回動態數組的大小
- .delete( )可以清空動態數組,使其尺寸為0
- '{ }可以完成初始化
隊列
隊列結合了數組和鏈表,可以在隊列的任何位置添加或者刪除數據成員,可以通過索引來訪問隊列的任何一個成員。
- [ $ ]來聲明隊列,隊列的索引值是從0到$
- 通過insert(pos, val)來在指定位置插入數據成員
- 通過delete( )來刪除所有數據成員,也可以刪除某一個成員
- .push_front ():在隊列最前端插入值
- .push_back():在隊列最后端插入值
- .pop_back():取出隊列最后一個值
- .pop_front():取出隊列最前面一個值
- 隊列中不能插入隊列
關聯數組
- 關聯數組可以用來存放散列的數據成員,散列的索引類型可以為任意類型(整型,字符串或者其他),存儲的數據也可以為任何類型
- .first():得到第一個索引值
- .next():得到當前索引的下一個索引值
縮減方法
- 把一個數組縮減成一個值
- .sum(),它是對數組中所有的元素求和
- .product( ) 所有元素乘積
- .and( ) 所有元素與
- .or( ) 所有元素或
- .xor( ) 異或
定位方法
- .unique( ):返回只出現過一次的元素
- .min( )和.max( ):返回最小和最大值
- .find…with( ):查找滿足條件的數據成員
排序方法
- .reverse( ):逆序顛倒
- .sort( ):升序排列
- .rsort( ):降序排列
- .shuffle( ):隨機打亂