std::array 的建構子限制
問題:
問題:問題:
<code class="cpp">std::array<T, size>::array(const T& value);</code>
答案:
根據設計,std::array 是一個聚合類型,這表示它沒有使用者定義的建構子。因此,它不能有這樣的建構子:替代方案:
<code class="cpp">std::array<int, 10> arr; std::fill(arr.begin(), arr.end(), -1);</code>
預設建構和std::fill:
預設建構std::array後,可以使用std::fill函式來賦值所有元素的特定值:<code class="cpp">std::array<std::string, 10> arr = {}; // Trivial initialization std::uninitialized_fill(arr.begin(), arr.end(), std::string("Example"));</code>
以上是為什麼 std::array 中沒有建構函式來為所有元素指派指定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!