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

📄 ivu_list.hxx

📁 hl2 source code. Do not use it illegal.
💻 HXX
字号:
// Copyright (C) Ipion Software GmbH 1999-2000. All rights reserved.

//IVP_EXPORT_PUBLIC

#ifndef _P_LIST_INCLUDED
#define _P_LIST_INCLUDED

/* list header, list elements should have:
   next, prev
   */

template<class T>
class P_List {
public:
    T *first;
    int len;
    
    void insert(T *elem){
	IVP_ASSERT(!elem->next);
	elem->next = this->first;
	if(first){
	    first->prev = elem;
	}
	elem->prev = 0;
	first = elem;
	len++;
    };
    
    void remove(T *elem){
	register T *e = elem;
	register T *h;
	IVP_ASSERT(e->next != (T*)-1);
	if ((h = e->prev)){
	    h->next = e->next;
	}else{
	    first = e->next;
	}
	if ((h = e->next)){
	    h->prev = e->prev;
	}
	e->next = (T *)-1;	// invalid flag !!
	len--;
	//elem->next = 0;
    };
    
    P_List(){
	first=0;
	len=0;
    }
};


/* list header, list elements should have:
   next
   */

template<class T> class P_Simple_List {
public:
    T *first;
    
    void insert(T *elem){
	elem->next = this->first;
	first = elem;
    };
    
    void remove_first(){
	register T *e = elem;
	register T *h;
	first = e->next;
	if (h = e->next){
	    h->prev = e->prev;
	}
    }
};

#endif

⌨️ 快捷键说明

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