在C 中將陣列的元素初始化為預設值
問題是C 中使用以下語法的陣列初始化所引起的:
int array[100] = {-1};
此初始化將第一個元素設為-1,並將其餘元素保留為0,這不是期望的行為。為了解決這個問題,需要考慮以下幾點:
語法解釋
語法int array[100] = {-1};本質上是說,「將第一個元素設定為-1,其餘元素設定為0。
將所有元素設為非零值
將所有元素初始化為像 -1 這樣的非零值,不能只依賴預設的省略值初始化。相反,可以使用以下方法:
std::fill_n(array, 100, -1);
for (int i = 0; i < 100; i++) { array[i] = -1; }
速度比較
與循環相比,預設初始化的速度沒有顯著差異。兩種方法都按順序初始化元素,因此時間複雜度保持相同。然而,與手動循環相比,使用 std::fill_n 可以節省一些指令,使其在大多數情況下稍微快一些。
以上是如何將 C 數組的所有元素初始化為特定的非零值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!