首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C++Builder TBits 類別完整指南:布林陣列的高效管理

     編輯:VC 教學

TBits(單元 Classes)提供動態大小的布林值陣列,自動管理記憶體、支援擴充,適合需儲存大量布林旗標的場合。若位元數固定 ≤ 32,用整數位運算(&、|)更輕量。

類別繼承關係


TObject
  └── TBits

主要屬性

屬性型別說明
Bitsbool __property Bits[int Index]索引存取指定位置的布林值。超出範圍拋出 EBitsError。
Sizeint目前陣列容量(位元數)。設定此屬性可擴充/縮減陣列;擴充時新位元預設 false,縮減時超出部分捨棄。

主要方法

方法說明
__fastcall TBits()建構函式。勿直接呼叫,請用 new TBits 建立實例。
__fastcall virtual ~TBits()解構函式,釋放內部記憶體。應用程式請用 delete 銷毀實例。
int __fastcall OpenBit()傳回第一個值為 false 的索引。若全為 true 則傳回 Size(即下一個可用位置)。

使用範例


#include <Classes.hpp>

void DemoTBits() {
    TBits *bits = new TBits();
    try {
        bits->Size = 100;           // 配置 100 個位元,全為 false
        bits->Bits[10] = true;      // 設定第 10 位為 true
        bits->Bits[50] = true;

        int firstFree = bits->OpenBit(); // 傳回 0(第一個 false)
        // 可用於資源池分配:尋找第一個可用槽位

        for (int i = 0; i < bits->Size; i++) {
            if (bits->Bits[i]) {
                // 處理已設定的位元
            }
        }
    }
    __finally {
        delete bits;
    }
}

適用場景

  • 大型布林旗標集合(如位圖快取有效位、網路封包標記)。
  • 資源池管理:OpenBit() 快速尋找第一個空閒槽位。
  • 位元級壓縮儲存,節省記憶體。

效能提示

  • 頻繁隨機存取時,TBits 內部以 32-bit 整數陣列儲存,單次存取需計算字索引與位遮罩,略慢於 std::vector<bool> 或手工位運算,但介面更安全易用。
  • 需極致效能時,考慮直接操作 unsigned long* 陣列配合內建函式(_BitScanForward 等)。

TBits 是 VCL 中處理動態布林陣列的標準工具,善用可簡化代碼並減少邊界錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved