1. 程式人生 > 實用技巧 >C++用memset函式初始化

C++用memset函式初始化

在求最長公共子序列問題中,在使用動態規劃的填表法時,我們要用兩個for迴圈來初始化這個表,

 int c[MAXLEN][MAXLEN]; //記錄子問題XiYj的解
//
當x序列為空時,最長公共子序列長度為0 for (int j = 0; j <= n; j++) c[0][j] = 0; //當y序列為空時,最長公共子序列長度為0 for (int i = 0; i <= m; i++) c[i][0] = 0;

而我們可以使用memset函式來將表初始化為0,需要標頭檔案<cstring>

int c[MAXLEN][MAXLEN]; //
記錄子問題XiYj的解 memset(c, 0, sizeof(c)); //初始化

使用memset函式時,要注意以下幾點:

  • memset的正規用法是隻能用來初始化char型別的陣列的,也就是說,它只接受0x00-0xFF的賦值
  • 因為char是1位元組,memset是按照位元組賦值的,相當於把每個位元組都設為那個數,所以char型的陣列可賦任意值;
  • 而在給char型以外的陣列賦值時,只能初始化為0或者-1。

參考連結:https://www.cnblogs.com/yhlboke-1992/p/9292877.html

https://blog.csdn.net/lyj2014211626/article/details/65481630