首頁 > 後端開發 > C++ > 如何在 C 中使用大括號正確初始化 2D `std::array`?

如何在 C 中使用大括號正確初始化 2D `std::array`?

Linda Hamilton
發布: 2024-11-24 06:22:24
原創
974 人瀏覽過

How to Correctly Initialize a 2D `std::array` in C   Using Braces?

使用大括號初始化2D std::array

使用C 時,使用大括號初始化2D std::array 可能具有挑戰性。以下程式碼片段說明了這個問題:

std::array<std::array<int, 3>, 2> a {
    {1, 2, 3},
    {4, 5, 6}
};
登入後複製

此方法無法編譯,編譯器錯誤指示std::array<:array>, 2u> 的初始值設定項太多。要理解為什麼會發生這種情況,了解 std::array 的底層實作至關重要。

std::array 內部

std::array 是一個聚合,包含一個 C 風格的陣列。因此,要正確初始化它,需要類別本身的外大括號和C 陣列成員的內大括號:

std::array<int, 3> a1 = { { 1, 2, 3 } };
登入後複製

將此邏輯擴展到2D 陣列會導致以下有效初始化:

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
登入後複製

在此範例:

  • "{ { {1, 2, 3} }, { { 4, 5, 6} } }" 是類別大括號,包含二維陣列的初始化。
  • "{{1, 2, 3}, {4, 5, 6}}" 是內部 C 樣式陣列的大括號,初始化 2D 陣列的每一行。

以上是如何在 C 中使用大括號正確初始化 2D `std::array`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板