2017-02-10 262 views
0
struct node{ 
    int key, prior, cnt, val; 
    node *l, *r; 
    node(){} 
    node(int nkey) : key(nkey), prior(rand()), cnt(1), l(0), r(0), val(1){} 
}; 

node(){}是做什麼用的?請解釋一下,謝謝。node(){}是什麼意思?

+0

這是默認的構造函數。 – WhozCraig

+0

帖子中的標題和帖子中的問題完全不同。你應該儘量重寫這個標題,以便它儘可能與核心問題直接相關。 –

回答

0

node(){}是做什麼用的?請解釋一下

node(){}看起來像treap節點。代碼node(){}是定義默認構造函數的語法。

沒有默認的構造函數,你不能在STL容器,所以你需要爲默認的定義中使用nodestd::arraystd::vector等無需額外的代碼。在編碼競賽中,人們傾向於編寫最小代碼並儘可能多地使用現有功能,即使以泄漏範圍等爲代價。

+1

*編輯*,好的,如果你有其他的構造函數,你需要在數組中使用默認的構造函數._。 , 感謝您的解釋 。 –

+0

我很高興,如果它幫助你。 –

+1

所有標準容器在沒有默認構造函數的情況下都可以使用。 'std :: array'確實需要初始化,但其他的包括'std :: vector'可以是空的,所以沒有問題。 – Quentin

1

它將默認構造函數node()定義爲空函數{}