Re: [問題] 簡潔的boolean比較寫法?
※ 引述《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
11/30 00:46, 1F
推
11/30 03:23, , 2F
11/30 03:23, 2F
→
11/30 03:23, , 3F
11/30 03:23, 3F
推
11/30 07:48, , 4F
11/30 07:48, 4F
→
11/30 09:01, , 5F
11/30 09:01, 5F
→
11/30 09:01, , 6F
11/30 09:01, 6F
→
11/30 09:07, , 7F
11/30 09:07, 7F
→
11/30 09:16, , 8F
11/30 09:16, 8F
→
11/30 10:06, , 9F
11/30 10:06, 9F
推
11/30 11:00, , 10F
11/30 11:00, 10F
推
11/30 11:09, , 11F
11/30 11:09, 11F
→
11/30 12:01, , 12F
11/30 12:01, 12F
→
11/30 13:35, , 13F
11/30 13:35, 13F
→
11/30 13:49, , 14F
11/30 13:49, 14F
推
11/30 13:55, , 15F
11/30 13:55, 15F
→
11/30 14:06, , 16F
11/30 14:06, 16F
→
11/30 14:07, , 17F
11/30 14:07, 17F
※ 編輯: loveme00835 來自: 140.121.197.115 (11/30 14:28)
推
11/30 14:32, , 18F
11/30 14:32, 18F
推
11/30 15:27, , 19F
11/30 15:27, 19F
推
11/30 15:38, , 20F
11/30 15:38, 20F
推
11/30 21:25, , 21F
11/30 21:25, 21F
→
11/30 21:30, , 22F
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
11/30 23:49, 25F
→
12/01 00:05, , 26F
12/01 00:05, 26F
推
12/01 16:00, , 27F
12/01 16:00, 27F
推
12/01 22:19, , 28F
12/01 22:19, 28F
→
12/01 22:19, , 29F
12/01 22:19, 29F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):