statemap.h

来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 88 行

H
88
字号
/* * @(#)statemap.h	1.6 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */#ifndef __statemap_h_#define __statemap_h_#include <stdio.h>#include <assert.h>#include "transition.h"/* * statemap: an expandable vector for mapping a large set of * states into a smaller one. Used for transition matrix compression. * i.e. maps statenumber => statenumber. */class statemap {	int		max_element;	stateno		maxv;	stateno  *	array;public:	// null constructor.	statemap(){ max_element = -1; array = 0; maxv=0; }		// make map bigger as number of states grows.	void grow( stateno new_max );	// add a mapping	void new_mapping( stateno index, stateno value );	// find max abcissa value	stateno max_mapping(void) { return maxv; }	// find max ordinate value	stateno max_ordinate(void) { return max_element; }	// do lookup.	stateno operator[]( stateno index );	// squeeze map. When rows or columns are	// removed from a transition table, the map	// has to change, too.	// Remap(m, n) causes all map entries currently referencing	// m to reference n instead.	void remap( stateno oldno, stateno tono );	//	// free allocated storage. Does not deallocate the	// statemap itself.	void destruct(void);	void print(	    const char * type_name,	    const char * symbolname,	    const char * qualifier,	    const char * name_template,	    FILE * output,	    FILE * data);};// for debugger.void print_statemap( statemap * );#endif

⌨️ 快捷键说明

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