二级指针,指针的指针的运用,例子

    技术2022-05-11  87

        void remove(const Key& key) {        Entry **entry_ptr = &m_buckets[key.hash() % m_num_buckets];        while ((*entry_ptr != 0) && !(key == (*entry_ptr)->m_key)) {            entry_ptr = &(*entry_ptr)->m_next;        }                if (*entry_ptr != 0) {            Entry *tmp_ptr = (*entry_ptr)->m_next;            delete *entry_ptr;            *entry_ptr = tmp_ptr;        } 

     

    这段代码看了半天,原因是和自己以前实现的想法不一样;

    以前的做法是delete掉查找到的节点,然后更新指针,但是首指针在m_buckets中,要对m_buckets做单独的更新

    而上面的代码,不需要对头指针的更新做特别处理,上面用到了指针的指针,可以学习学习......


    最新回复(0)