⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgm13_10.cpp

📁 此文件为网络书籍数据结构的面向对象方法的源码
💻 CPP
字号:
////   This file contains the C++ code from Program 13.10 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_10.cpp//void* DoublyLinkedPool::Acquire (size_t bytes){    unsigned int const blocks =	(bytes + sizeof (Header) + sizeof (Block) - 1U) /	    sizeof (Block);    Block* ptr;    for (ptr = sentinel.link.next; ptr != &sentinel;	ptr = ptr->link.next)    {	for (;;)	{	    Block& successor = ptr [ptr->length];	    if (successor.status == reserved)		break;	    Unlink (successor);	    ptr->length += successor.length;	}	if (ptr->length >= blocks)	    break;    }    if (ptr == &sentinel)	throw bad_alloc ("out of memory");    if (ptr->length > blocks)    {	Block& newBlock = ptr [blocks];	newBlock.status = free;	newBlock.length = ptr->length - blocks;	ptr->length = blocks;	InsertAfter (sentinel, newBlock);    }    Unlink (*ptr);    ptr->status = reserved;    return ptr->userPart;}

⌨️ 快捷键说明

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