嘗試初始化std::array<:array> 類型的2D 陣列時, 2>使用大括號,您可能會遇到錯誤。這是因為 std::array 是封裝 C 樣式陣列的聚合。為了正確初始化它,類別本身需要一個外括號對,而實際的 C 陣列需要一個內括號。
考慮以下範例:
std::array<int, 3> a1 = {{1, 2, 3}}; // Valid initialization of a 1D array
將此概念應用於二維陣列:
std::array<std::array<int, 3>, 2> a2 { {{ {1, 2, 3} }, { {4, 5, 6} }} // Correct initialization };
在此範例:
正確範例中的附加大括號允許編譯器區分在類別初始化和所包含陣列的初始化之間。這會導致二維數組的正確編譯和初始化。
以上是如何在 C 中正確初始化 2D std::array ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!