Re: [問題] 簡潔的boolean比較寫法?

看板C_and_CPP作者 (高髮箍)時間14年前 (2011/11/30 00:26), 編輯推噓13(13016)
留言29則, 17人參與, 最新討論串2/2 (看更多)
※ 引述《thanksgive (乾溫)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C++ ^^^ : 問題(Question): : 我有五個bool變數, : 然後會根據變數來判斷分支 : 請問有比較簡潔的寫法嗎? : (比方類似linux那樣,用數字0~7代表三個布林變數狀態) 傷心... #include <bitset> bitset<5> vars; if( vars[ 0 ] && vars[ 4 ] ) { // ... } else if( vars[ 1 ] && vars[ 2 ] && vars[ 3 ] ) { // ... } 如果嫌麻煩, 可以依照特殊情況註冊必要的 handler #include <functional> #include <string> #include <map> map< unsigned long, function<void(void)> > handlers; string output; handlers[ 021 ] = [&]() { output.append("10001"); }; handlers[ 016 ] = [&]() { output.append("01110"); }; vars.set(0).set(4); handlers[ vars.to_ulong() ](); vars.flip(); handlers[ vars.to_ulong() ](); cout << output << endl; // 印出 "1000101110" -- ★ ★ ███ ███ █▌█ ██◣ ███ ▋▋█ █▂█ █▃█ ███ █▆█ █▄█ ███ █ ◣ █ █ ▋██ █▆◤ ███ ███ Kim Jae Kyung Koh Woo Ri Cho Hyun Young Kim Ji Sook φwindyhorse No Eul Oh Seung A Jung Yoon Hye -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115

11/30 00:46, , 1F
lambda都跑出來了 XDD
11/30 00:46, 1F

11/30 03:23, , 2F
再次確定..會 C++ 的不多 XD. 不過另一篇 D 的方法在
11/30 03:23, 2F

11/30 03:23, , 3F
M$ 也常這樣搞。
11/30 03:23, 3F

11/30 07:48, , 4F
純C++真的好難> <
11/30 07:48, 4F

11/30 09:01, , 5F
這個跟純c++無關了,版主開始把boost東西加入了. ~"~
11/30 09:01, 5F

11/30 09:01, , 6F
等我看完exceptional c++.開始去延就好了
11/30 09:01, 6F

11/30 09:07, , 7F
板主到底是怎麼讀這些東西的= =需要經驗分享...
11/30 09:07, 7F

11/30 09:16, , 8F
修正lambda跟boost無關聯.
11/30 09:16, 8F

11/30 10:06, , 9F
在c++11
11/30 10:06, 9F

11/30 11:00, , 10F
看來C++真的不適合我= =
11/30 11:00, 10F

11/30 11:09, , 11F
這存心讓以後接的人看不懂xdd\
11/30 11:09, 11F

11/30 12:01, , 12F
看不懂只好再回去深造囉xdddddd
11/30 12:01, 12F

11/30 13:35, , 13F
lambda就罷了,bitset明明很容易理解
11/30 13:35, 13F

11/30 13:49, , 14F
其實lambda簡單應用也不難..他是為了程式更容易,不是更難
11/30 13:49, 14F

11/30 13:55, , 15F
實只要習慣了寫法都不難..重點就是不習慣XD
11/30 13:55, 15F

11/30 14:06, , 16F
就像 C99 新feature少人用一樣, C++98 的也少人用, 所
11/30 14:06, 16F

11/30 14:07, , 17F
以才會接不起來, 10年前的東西又是標準耶...
11/30 14:07, 17F
※ 編輯: loveme00835 來自: 140.121.197.115 (11/30 14:28)

11/30 14:32, , 18F
早上看不懂,現在突然看懂了...lambda的語法很不直覺...
11/30 14:32, 18F

11/30 15:27, , 19F
第一次知道C可以用 lambda 語法寫......??????
11/30 15:27, 19F

11/30 15:38, , 20F
原po已經說是C++了
11/30 15:38, 20F

11/30 21:25, , 21F
不會 C++ >"<
11/30 21:25, 21F

11/30 21:30, , 22F
什麼是c++?
11/30 21:30, 22F

11/30 22:00, , 23F
一個好吃的食物..
11/30 22:00, 23F

11/30 23:30, , 24F
類似魚骨頭的食物
11/30 23:30, 24F

11/30 23:49, , 25F
還真的滿像的XD
11/30 23:49, 25F

12/01 00:05, , 26F
魚骨頭 <o+++++<
12/01 00:05, 26F

12/01 16:00, , 27F
0xEEEEEEEC <-魚骨頭
12/01 16:00, 27F

12/01 22:19, , 28F
寫java的對lambda應該會覺得很簡單吧XD
12/01 22:19, 28F

12/01 22:19, , 29F
或者是像學javascript之類的
12/01 22:19, 29F
文章代碼(AID): #1ErGUqgm (C_and_CPP)
文章代碼(AID): #1ErGUqgm (C_and_CPP)