srand time NULL 用法解析

2021-05-26 21:06:14 字數 474 閱讀 4869

在一些產品的源**中,經常會發現有這樣的語句,

srand(unsigned(time(null)));

為什麼要這樣做呢,其實很簡單。

1.  time()函式表示返回1970-1-1 00:00:00 到當前時間的秒數,而time(null)表示獲取乙個時間,準確的說,獲取乙個指標的位址。

2.  srand()函式是產生隨機數種子的。在產生隨機數 rand()被呼叫的時候,他會檢視:如果使用者之前呼叫過 srand(seed)的話,他會重新呼叫一遍 srand(seed)以產生隨機數種子;如果發現沒有呼叫過 srand(seed)的話,會自動呼叫 srand(1)一次。所以,如果希望rand()每次呼叫產生的值都不一樣,就需要每次呼叫srand(seed)一次,而且seed不能相同。

綜合上述兩點,那就很明了了。

srand(unsigned(time(null)))表示產生隨機數種子以保證rand()呼叫的時候不會出現重複的隨機值。

stack用法,queue用法,

stack stack 模板類的定義在標頭檔案中。stack 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,但只有元素型別是必要 的,在不指定容器型別時,預設的容器型別為deque。定義stack 物件的示例 如下 stack s1 stack s2 stack 的基本操作有 入棧,如例 s...

stack用法,queue用法,

stack stack 模板類的定義在標頭檔案中。stack 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,但只有元素型別是必要 的,在不指定容器型別時,預設的容器型別為deque。定義stack 物件的示例 如下 stack s1 stack s2 stack 的基本操作有 入棧,如例 s...

object args用法 args的用法

object args用法 args和 kwargs主要用於函式定義中。args和 kwargs允許您將可變數量的引數傳遞給函式。變數在這裡的含義是,您事先不知道使用者可以將多少個引數傳遞給您的函式,因此在這種情況下,您將使用這兩個關鍵字。args用於將非關鍵字的可變長度引數列表傳送到函式。這是乙個...