看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
purincess:lambda都跑出來了 XDD 11/30 00:46
tropical72:再次確定..會 C++ 的不多 XD. 不過另一篇 D 的方法在 11/30 03:23
tropical72:M$ 也常這樣搞。 11/30 03:23
flere:純C++真的好難> < 11/30 07:48
angleevil:這個跟純c++無關了,版主開始把boost東西加入了. ~"~ 11/30 09:01
angleevil:等我看完exceptional c++.開始去延就好了 11/30 09:01
diabloevagto:板主到底是怎麼讀這些東西的= =需要經驗分享... 11/30 09:07
angleevil:修正lambda跟boost無關聯. 11/30 09:16
diabloevagto:在c++11 11/30 10:06
jason12308:看來C++真的不適合我= = 11/30 11:00
b90343024:這存心讓以後接的人看不懂xdd\ 11/30 11:09
x000032001:看不懂只好再回去深造囉xdddddd 11/30 12:01
littleshan:lambda就罷了,bitset明明很容易理解 11/30 13:35
hilorrk:其實lambda簡單應用也不難..他是為了程式更容易,不是更難 11/30 13:49
ericinttu:實只要習慣了寫法都不難..重點就是不習慣XD 11/30 13:55
loveme00835:就像 C99 新feature少人用一樣, C++98 的也少人用, 所 11/30 14:06
loveme00835:以才會接不起來, 10年前的東西又是標準耶... 11/30 14:07
※ 編輯: loveme00835 來自: 140.121.197.115 (11/30 14:28)
chchwy:早上看不懂,現在突然看懂了...lambda的語法很不直覺... 11/30 14:32
iWRZ:第一次知道C可以用 lambda 語法寫......?????? 11/30 15:27
littleshan:原po已經說是C++了 11/30 15:38
xatier:不會 C++ >"< 11/30 21:25
angleevil:什麼是c++? 11/30 21:30
bernachom:一個好吃的食物.. 11/30 22:00
ericinttu: 類似魚骨頭的食物 11/30 23:30
hilorrk:還真的滿像的XD 11/30 23:49
purincess:魚骨頭 <o+++++< 12/01 00:05
iWRZ:0xEEEEEEEC <-魚骨頭 12/01 16:00
tomap41017:寫java的對lambda應該會覺得很簡單吧XD 12/01 22:19
tomap41017:或者是像學javascript之類的 12/01 22:19