作者darkgerm (黑駿)
看板C_and_CPP
標題Re: [問題] bitset 宣告陣列的一個問題
時間Sat May 26 15:15:48 2012
※ 引述《etonhsiao (eton)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: bitset
: 問題(Question):
: 我想要宣告一個bitset的陣列,可是compile一直不過
: 餵入的資料(Input):
: bitset<3> A[4] = {string("000"), string("001"), string("010"), string("100") }
bitset 有三個建構式(constructor)
1.
bitset ( );
2.
bitset ( unsigned long val );
3.
template<class charT, class traits, class Allocator>
explicit bitset ( const basic_string<charT,traits,Allocator>& str,
typename basic_string<charT,traits,Allocator>::size_type pos = 0,
typename basic_string<charT,traits,Allocator>::size_type n =
basic_string<charT,traits,Allocator>::npos);
跟據原 po 的要求,是用 string 去初始化 bitset,也就是用第 3 個建構式
但是,這個建構式是 explicit 的…也就是說,不能隱式轉型
要達成原 po 的需求,可以用 copy assignment 做到:
bitset<3> A[4] = {
bitset<3> (string("000")),
bitset<3> (string("001")),
bitset<3> (string("010")),
bitset<3> (string("100"))
};
: 預期的正確結果(Expected Output):
: A[0] = 000, .....
: 錯誤結果(Wrong Output):
: 無法compile
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
: 我把string的東西換成數字
: bitset<3> A[4] = { 0, 1, 2, 4 }
: 這樣就可以過
: 但是我想用string來宣告,這樣比較方便
: 有沒有辦法呢?
--
光明 的背後 是 黑暗
黑暗 的背後 還是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.230.123
※ 編輯: darkgerm 來自: 140.113.230.123 (05/26 17:11)
推 j129008:看到帳號只好推了XDDD 05/26 20:11
推 liaon98:DKG必推 05/26 23:01
推 etonhsiao:原來如此~非常感謝!! 05/27 09:32