簡體   English   中英

矢量怎么樣? <bool> 處理引用和迭代器?

[英]How does vector<bool> deal with references and iterators?

因為我們都知道C ++ 98 vector<bool> specialization將布爾值存儲為位而不是bool變量。 vector<bool>的元素是不可尋址的,因為C ++沒有指針和對bit的引用,是否有解決方法,任何明顯的陷阱( 我似乎都沒有注意到 ),甚至嘗試和這樣做?

vector<bool>的元素可以作為任何其他vector的元素尋址,例如使用operator [] 但是,由於內存壓縮,操作會更慢。

也許更快的實現將使用您自己的內存實現並使用二進制移位來解決特定的布爾值。

另一種方法是在適當的地方使用簡單數組。 請記住,您可以使用new運算符動態分配它。

編輯替代實現可能在例如此線程中找到。

vector<bool>使用帶有重載運算符的包裝器對象,而不是引用/指向位的指針,這些運算符的行為(在大多數情況下)類似於布爾值的引用/指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM