」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼不``std :: vector ::參考'返回'bool&'?

為什麼不``std :: vector ::參考'返回'bool&'?

發佈於2025-03-11
瀏覽:596

Why Doesn't `std::vector::reference` Return a `bool&`?
為什麼向vector ::參考不返回bool?

在c中,std :: vector 容器專用於布爾值。與其他數據類型的向量相比,該專業化引入了行為差異。

在提供的示例中,問題在提供的示例中,函數calliftOggleggled用於切換bool值並在struct上調用一個方法。當試圖傳達對std :: vector calliftoggled的元素的引用時,會發生彙編錯誤。這是因為Vector ::參考返回的參考類型不是預期的bool&。 在bool vector專業化,vector :: vector ::我的參考返回引用引用對char,而不是布爾。 This is done to optimize performance by using a bitwise representation for Boolean values.

Solutions

Use vector Instead:

Replace the bool vector with a vector to work around the specialization issue.

Use Boost Containers庫:

Boost容器庫提供了vector 的無專業版本,該版本對布爾值提供了真實的引用。

在結構中包裝bool值:

圍​​繞BOOL創建一個稱為MyBool的編織器結構。這允許傳遞對包裝器的引用,後者又提供了對基礎布爾值的間接訪問。

,a); calliftogled(f,v [1],a); calliftogled(f,v [2],a); }

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3