數據處理思想和程序架構: 對使用的數據進行優先等級排序的緩存


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/單片機知識點總結/directory.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

說明

現在有個這個事情.

我有一個設備,然后好多APP都來控制這個設備.

每個APP都有一個標識符,設備想要和某個APP通信

設備的數據里面需要攜帶着APP的標識符.

簡單的處理就是設備去把每一個APP的標識符記錄下來

然后設備發送數據的時候根據標識符一個一個的去發送數據.

但是設備不可能無限制的記錄APP的標識符.

而且為了給新來的APP騰出位置記錄其標識符

還需要把那些長時間不使用的標識符刪除掉.

 

整體思路

用一個buff記錄每一條數據.

往里存儲的時候判讀下有沒有這條數據

如果有這個數據,就把這個數據提到buff的第一個位置,然后其它數據往后移

如果沒有這個數據就把這個數據插到buff的第一個位置,其它數據也往后移

使用

1.我封裝好了這個功能

 

 

 

2.使用的一個二維數組進行的緩存

 

 

 

測試剛存儲的優先放到緩存的第一個位置(新數據)

1.先存儲 6個0字符 再存儲6個1字符

 

 

 

2.執行完記錄6個0字符,數據存儲在緩存的第一個位置

 

 

 

3.執行完記錄6個1字符,6個1字符數據存儲在緩存的第一個位置,0字符存儲在緩存的第二個位置

 

 

 

 

測試剛存儲的優先放到緩存的第一個位置(已經存在的數據)

1.測試一下如果再次記錄相同的數據,緩存把數據提到第一個位置,其它位置往后移

 

 

 

注:

執行存儲0字符,正常運行應該是把0存儲在第一個位置

然后執行記錄1字符,正常運行應該是把1存儲在第一個位置,0存儲在第二個位置

然后執行記錄2字符,正常運行應該是把2存儲在第一個位置,1存儲在第二個位置,0存儲在第三個位置

然后再次記錄1,正常運行應該是把1提取出來(程序里面會用其它數據填補這個空缺),放到第一個位置

然后2存儲在第二個位置,0存儲在第三個位置

 

 

 

 

 

 

 

使用里面的數據

直接調用這個數組就可以,數組的每一行代表存儲的每一條數據

 

 

 

 

 

 

提示:

如果程序存儲滿了,自動丟棄最后一個位置的數據.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM