→ diabloevagto:Q2目前gcc是可以當作0跟1,不過這是因為gcc是這樣處 06/25 20:38
→ diabloevagto:理,建議還是自己用個(bool == true):1?0; 06/25 20:38
→ diabloevagto:加在運算式內這樣比較保險 06/25 20:39
→ EdisonX:樓上d大點到我想問的了,依std它是ok的嗎? C寫久了突然多了 06/25 20:39
→ EdisonX:bool 反而好不習慣 Orz 06/25 20:39
→ diabloevagto:你Q3是否自己寫個struct會比較好呢? 06/25 20:40
→ EdisonX:Q3 實際上與 Q1 相關,就是卡在 overload operator[]. 06/25 20:42
→ diabloevagto:險的好 06/25 20:44
→ diabloevagto:你Q3都用vector的話,何必在自己寫個op[]? 06/25 20:45
抱歉,我該講清楚。 忘了在哪本 Effective 裡面的 Item 提到,
vector<bool> 實際上不是一個 container,
原本一個 element 應該要存 1 bytes, 但 vector<bool> 只用 1bit,
所以該 Item 提出 「never use vector<bool>」之類的敘述。
而 Q3 重點是在於,若只有那三項操作時,使用 vector<bool> 會不會出包,
如果會出包、不適用 vector<bool>,那就是該解決 bitset operator[] 問題。
※ 編輯: EdisonX 來自: 180.177.76.161 (06/25 20:51)
→ EdisonX:謝謝 h 大,Q3 看來確定被打槍,source 我研究想一下,感謝:) 06/25 20:56
→ Chikei:Q2: Yes, standard draft N3093 4.5/6 4.7/4 06/25 21:27
→ diabloevagto:那我之前聽得true不一定是1是錯的摟... 06/25 21:31
→ Chikei:人家搞不好指的是VC6或gcc 3.x的C++ :p 06/25 21:38
→ Chikei:Q1何不參考boost::dynamic_bitset ? 06/25 21:39
→ diabloevagto:另外請問,那個標準的檔案要到那邊看? 06/25 21:41
→ diabloevagto:感謝你!值得研究研究 06/25 21:53
→ EdisonX:原來是 proxy, DP 看完一遍遇到問題還是轉不過來說 orz 06/25 22:17
→ EdisonX:謝謝 C 大回覆 :) 06/25 22:18
→ loveme00835:4.5/1 看一下, 什麼是 prvalue... 簡單來說要轉自己加 06/26 00:35
→ loveme00835:括號, 有號搭無號作運算, 如果你再加上位移運算後果是 06/26 00:36
→ loveme00835:很恐怖的... 06/26 00:36
→ loveme00835:proxy很常用到, 在STL容器中對一個迭代器要求的操作 06/26 00:38
→ loveme00835:像 Input Iterator 的 operator* 回傳型態必須是 06/26 00:39
→ loveme00835:"convertible to T" 換句話說為了更大的彈性, 實際上 06/26 00:40
→ loveme00835:不會直接回傳 T&, 甚至一種容器光迭代器內部就轉來轉 06/26 00:41
→ loveme00835:去好幾種 06/26 00:41
→ Chikei:不是rvalue refer相關產物的rvalue 06/26 01:17
→ EdisonX:冒味請教,那些編號該怎麼查 ? 上 C 大連結 Ctrl+F 找不到. 06/26 02:40
→ diabloevagto:ISO/IEC 14882:2011 Programming Language C++-draft 06/26 02:47
→ diabloevagto:點draft會連到一個n3242.pdf 06/26 02:47
→ diabloevagto:這個就是了 06/26 02:48
→ EdisonX:謝謝 d 大 , 也謝謝 loveme~ 大 :) 06/26 02:50