Logo Search packages:      
Sourcecode: yaskkserv version File versions  Download package

template<HashType T>
bool SkkUtility::Hash< T >::contain ( const char *  key,
int  size 
) const [inline]

size バイトの candidate 文字列 key がハッシュに登録されていれば真を返します。

Attention:
key は '/' で終端されることに注意が必要です。

Definition at line 1372 of file skk_utility.hpp.

                {
                        DEBUG_ASSERT_POINTER(key);
                        DEBUG_ASSERT(size >= 1); // 最低 1 文字

                        int hash_root = get_hash_root(key,
                                                      size);
                        int first_index = hash_root % hash_table_length_;

                        if ((hash_table_ + first_index)->key)
                        {
                                for (int i = 0; i != hash_table_length_; ++i)
                                {
                                        int index = hash_root + i;
                                        index %= hash_table_length_;
                                        if ((hash_table_ + index)->key)
                                        {
                                                if (compare(key,
                                                            (hash_table_ + index)->key,
                                                            size))
                                                {
                                                        return true;
                                                }
                                        }
                                        else
                                        {
                                                return false;
                                        }
                                }
                        }

                        return false;
                }


Generated by  Doxygen 1.6.0   Back to index