首頁 > 後端開發 > C++ > `vector::resize()` 在 C 03 中與標準和 Boost 容器庫的行為有何不同?

`vector::resize()` 在 C 03 中與標準和 Boost 容器庫的行為有何不同?

Susan Sarandon
發布: 2024-12-01 08:04:10
原創
707 人瀏覽過

How Does `vector::resize()` Behave Differently in C  03 with Standard and Boost Container Libraries?

C 11 vector::resize() 標準和Boost 容器庫的行為

vector::resize() 在C 中進行了大修11 提供對元素初始化的更精細的控制。然而,人們對其在 C 03 模式下的標準函式庫和 Boost.Container 下的行為提出了擔憂。

標準函式庫

向量::resize() C 11 之前的標準函式庫中的函式允許透過傳遞值來初始化元素。然而,在 C 11 中,該函數被分成兩個重載:一個用於值初始化,另一個用於透過複製進行初始化。

Boost.Container

Boost.Container 也提供了 vector::resize() 的三種重載:值初始化、預設初始化(Boost特定功能)和透過以下方式初始化

觀察

最近的測試表明,標準庫和Boost.Container 中的resize() 行為與C 03 模式下的預期不一致。雖然理想情況下 resize() 在所有三個測試(值、預設和複製初始化)中的行為應該相同,但結果表明,只有專門請求預設初始化的測試才會產生所需的輸出。

結論

行為上的差異表明C 11 中的vector::resize() 介面變更可能尚未完全生效,因為在標準和Boost.Container 測試中,最終的resize() 呼叫仍然使用零進行初始化,而沒有明確的預設初始化。需要進一步調查以確定此行為的原因。

以上是`vector::resize()` 在 C 03 中與標準和 Boost 容器庫的行為有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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