首頁 >後端開發 >C++ >如何有效地將 C 數組的所有元素初始化為非零值?

如何有效地將 C 數組的所有元素初始化為非零值?

Patricia Arquette
Patricia Arquette原創
2024-12-27 21:50:10471瀏覽

How Can I Efficiently Initialize All Elements of a C   Array to a Non-Zero Value?

理解C 中的數組初始化

C 中數組初始化的主題可能會令人困惑,特別是在嘗試將所有元素初始化為非- 零預設值。在本文中,我們將解決常見問題並提供有效數組初始化的解決方案。

初始值設定

在給定的程式碼中:

int array[100] = {-1};

期望所有元素都初始化為-1。然而,只有第一個元素被設定為-1;其餘元素用一些隨機值初始化為 0。這是因為省略的元素被隱式設定為 0。

要將所有元素初始化為-1,正確的語法是:

int array[100] = {-1, -1, -1, ...};

或者您可以使用std::fill_n 函數從 header:

std::fill_n(array, 100, -1);

效能比較

預設初始化方法(int array[100] = {-1};)和std::fill_n方法有效地執行陣列初始化。雖然預設初始化可能看起來更快,但需要注意的是,它可能依賴實現,並且不能保證在所有情況下都更快。

對於較大的數組,std::fill_n 方法通常更有效,因為它避免了為每個元素分配建立臨時變數。

以上是如何有效地將 C 數組的所有元素初始化為非零值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn