利用列舉,簡化多個標誌位統計

2022-08-26 17:36:21 字數 738 閱讀 1022

最近專案中產品提出乙個需求:頁面中增加乙個選擇框,有六個核取方塊供使用者去選擇。選擇完,點確定,記錄這六個標誌的狀態並對使用者的選擇新增日誌。

首先我是乙個菜鳥,寫出的**簡單粗暴,也算是解決了產品的需求。然後**提交到部門老大那,被痛批一頓,駁回了。老大人不錯,也給出自己的解決辦法,這個方法確實好。就是利用列舉和乙個switch-case函式完美解決問題。

列舉這樣定義:

enum

ewarntype

switch-case函式定義如下:

std::string getstring(int

value)

}

這樣做的好處是可以做到**不會出現重複,便於後期新增新功能和維護。

1. 在頁面新增這些標記你可以這樣做:

int nflag =ewt_one;

int i = 0

;while (nflag <_c_max_num)

通過乙個迴圈搞定。後期的增加新選擇和維護,只需要新增列舉值和修改switch-case函式即可。

2. 記錄使用者的選擇,用乙個int型別搞定

int nvalue = 0; //

記錄使用者當前選擇的狀態

int nflag =ewt_one;

int i = 0

;while(nflag <_c_max_num)

C 中的標誌列舉

標誌列舉在宣告列舉前加 flag 列舉值一般用2的n次方 1 2 4 8.不能 1 2 3 因為標誌每組可以自由組合 1 2 3 就衝突了 下面將其十進位制轉化成為二進位制說明就可以明白點00001 1 00010 2 00100 4 01000 8 10000 16 高富帥白 00001 0001...

利用PCA簡化資料

主成分分析 principal component analysis 可以把大量的資料的維度減小,也可以叫做降維。這麼做的好處如下 通過將原來的資料從高維度的座標系對映到低維度新的座標系來,這裡有一篇很不錯的例子 主元分析 pca 理論分析及應用。去除平均值 計算協方差矩陣 計算協方差矩陣的特徵值和...

列舉還可以簡化查詢???

第一次聽列舉是在單例模式,心想著列舉是啥,雙重鎖不香嘛?但是在一次批量查詢過程中,愛上了列舉。業務背景 list list lists.newarraylist switch tablename 而真實情況,表有20多張,插入長這樣 我在寫第 99999 01 個的時候終於忍不了了,決定乾掉它。pu...