Re: [問題] vector<bool>
原則上,可以用bitset甚至deque<bool>,但是不要使用vector<bool>
原因在於vector<bool>裡面存的不是bool,它不是真正的STL container
vector<bool>在標準裡面被規定成"每一個元素只佔 1位元(bit)"
當初這麼規定似乎是為了空間最佳化等等的理由
但這個規定導致了諸多後遺症
例如 vector<bool> 的 iterator 或 operator [] 沒辦法返回一個bool&
所以下面這段code理論上無法成功編譯
bool *b = &v[0]; //假設v是vector<bool>
總之雖然現有的標準中存在 vector<bool>
但標準委員會認為應該避免使用它
參照: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2204.html
※ 引述《wheniam64 (嘿)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 寫一個class中的private member用到 vector
: 於是#include<vector>
: 我寫: vector<bool> a(10);
: 但是compiler一直不給我過,可是這語法應該沒問題
: 請教版上前輩這問題如何解決
: 感謝!!
: 餵入的資料(Input):
: 預期的正確結果(Expected Output):
: 錯誤結果(Wrong Output):
: 感謝提醒
: 他寫: expected `;' before '(' token
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.59.213
推
12/28 23:50, , 1F
12/28 23:50, 1F
推
12/29 00:13, , 2F
12/29 00:13, 2F
→
12/29 02:01, , 3F
12/29 02:01, 3F
推
12/29 08:33, , 4F
12/29 08:33, 4F
→
12/29 09:02, , 5F
12/29 09:02, 5F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章