pgm13_11.cpp

来自「此文件为网络书籍数据结构的面向对象方法的源码」· C++ 代码 · 共 50 行

CPP
50
字号
////   This file contains the C++ code from Program 13.11 of//   "Data Structures and Algorithms//    with Object-Oriented Design Patterns in C++"//   by Bruno R. Preiss.////   Copyright (c) 1998 by Bruno R. Preiss, P.Eng.  All rights reserved.////   http://www.pads.uwaterloo.ca/Bruno.Preiss/books/opus4/programs/pgm13_11.cpp//class BuddyPool : public StoragePool{public:    enum Status { free, reserved };    struct Header    {	Status status: 1;	unsigned int k : bitsizeof (unsigned int) - 1U;    };    struct Block : public Header    {	enum { size = 16 };	struct Links	{	    Block* next;	    Block* prev;	};	union	{	    Links link;	    char userPart [size - sizeof (Header)];	};    };private:    unsigned int m;    unsigned int numberOfBlocks;    Block* pool;    Block* sentinel;    static void Unlink (Block&);    static void InsertAfter (Block&, Block&);    Block& Buddy (Block&) const;public:    BuddyPool (size_t);    ~BuddyPool ();    void* Acquire (size_t);    void Release (void*);};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?