看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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