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

📄 enumerator.c

📁 任意给定三维空间的点集
💻 C
字号:
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* * enumerator.C - *     \*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/#include  <stdlib.h>#include  <stdio.h>#include  <assert.h>#include  <map>#include  "enumerator.h"/*--- Constants ---*//*--- Start of Code ---*/struct ltvoidp{  bool operator()(const void  * s1, const void* s2) const  {    return ( ((int)s1) - ((int)s2) ) < 0;  }};typedef  map<void *, int, ltvoidp>  void_map_t;class  EnumerInner {private:    void_map_t  vp_map;    int  count;public:    EnumerInner() : vp_map()    {        count = 0;    }    ~EnumerInner() {        count = 0;    }    int  getID( void  * ptr )    {        void_map_t::const_iterator iter;        assert( ptr != NULL );        iter = vp_map.find( ptr );        if  ( iter != vp_map.end() )             return  vp_map[ ptr ];        vp_map[ ptr ] = ++count;        return  vp_map[ ptr ];    }    int  getIDPair( void  * ptr, void  * ptr1 )    {        void_map_t::const_iterator iter;                iter = vp_map.find( ptr );        if  ( iter != vp_map.end() )             return  vp_map[ ptr ];        iter = vp_map.find( ptr1 );        if  ( iter != vp_map.end() )             return  vp_map[ ptr1 ];        vp_map[ ptr ] = ++count;        return  vp_map[ ptr ];    }    bool  isIn( void  * ptr ) const    {        void_map_t::const_iterator iter;        iter = vp_map.find( ptr );        return( iter != vp_map.end() );    }    void  insert( void  * ptr, int  id )    {        vp_map[ ptr ] = id;    }    int  size() const    {        return  count;    }};Enumerator::Enumerator() {    pEnum = new EnumerInner();}Enumerator::~Enumerator() {    delete pEnum;    pEnum = NULL;}int  Enumerator::getID( void  * ptr ){    return  pEnum->getID( ptr );}void  Enumerator::insert( void  * ptr, int  id ) {    pEnum->insert( ptr, id );}bool  Enumerator::isIn( void  * ptr ) const{    return  pEnum->isIn( ptr );}int  Enumerator::size() const{    return  pEnum->size();}/* enumerator.C - End of File ------------------------------------------*/

⌨️ 快捷键说明

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