我使用無符號整數表示遊戲中的一堆飛機。每架飛機有兩個狀態,飛行和接地。我想將這個狀態與飛機編號一起存儲。什麼是實現這一目標的「最佳」方式?我可以使用std :: maps與飛機和它們的狀態,但似乎過度和緩慢。它可以使用位標誌完成嗎? 測試的分配和測試應該很快。如何在unsigned int上使用位標記以存儲其中的一個bool值
僞代碼:
unsigned int Boing = 777;
if(Boing is flying)
set some bit;
is Boing flying? (how to check for the current state)
任何暗示一個簡單而快速技術是讚賞!
我承認,一個結構是好辦了。你知道的速度差什麼?我的意思是直接轉變一點聽起來要比涉及一個結構所帶來的所有代碼更快 – Lumpi
@Lumpi:一個結構根本不需要任何代碼通過一個結構訪問一個字段只是一個內存訪問位字段需要一個內存訪問+位操作(實際上兩次寫入存儲器訪問)。 –
@Lumpi:說實話,這將成爲你的瓶頸的可能性很小。但是,位填充意味着你在進行微型優化,並且結構不太可能變慢(除非你正在做大量的內存拷貝)。它也更清潔。 –