メインページ | ネームスペース一覧 | クラス階層 | 構成 | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス テンプレートgslib::static_container::hash< Key, Value, Cont, KeyEqual >

コンテナは std::pair< Key, Value > を格納可能でなければならない。 [詳細]

#include <hash.h>

gslib::static_container::hash< Key, Value, Cont, KeyEqual >に対する継承グラフ

Inheritance graph
[凡例]
gslib::static_container::hash< Key, Value, Cont, KeyEqual >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

typedef std::pair< Key, Value > pair_type
typedef Cont::iterator iterator
typedef Cont::const_iterator const_iterator
typedef boost::call_traits<
KeyEqual >::param_type 
key_equal

Public メソッド

 STATIC_CONTAINER_MEMBERTYPEDEF (pair_type)
 hash (key_equal equal=KeyEqual())
 hash (const Cont &cont, key_equal equal=KeyEqual())
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
const_iterator find (typename boost::call_traits< Key >::param_type key) const
iterator find (typename boost::call_traits< Key >::param_type key)
bool empty () const
size_type size () const
const Value & search (typename boost::call_traits< Key >::param_type key) const
Value & search (typename boost::call_traits< Key >::param_type key)
Value & operator[] (typename boost::call_traits< Key >::param_type key)
 単なる検索目的でむやみに使うと、挿入が何度も行われるので、使用には十分ご注意を。

std::pair< iterator, bool > insert (const_reference v)
void erase (iterator it)
void clear ()
Cont & get_container ()
 コンテナ取得

const Cont & get_container () const
 コンテナ取得


Private メソッド

iterator push_back (const_reference v)

Private 変数

Cont cont_
KeyEqual equal_

説明

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
class gslib::static_container::hash< Key, Value, Cont, KeyEqual >

コンテナは std::pair< Key, Value > を格納可能でなければならない。

挿入、削除なども可能。

挿入は、コンテナの push_back() を使い実装されている。 削除は、コンテナの erase() を使い実装されている。 クリアは、コンテナの clear() を使い実装されている。

hash.h74 行で定義されています。


型定義

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
typedef Cont::const_iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::const_iterator
 

gslib::static_container::list_hash< Key, Value, MaxSize, KeyEqual >で再定義されています。

hash.h79 行で定義されています。

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
typedef Cont::iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::iterator
 

gslib::static_container::list_hash< Key, Value, MaxSize, KeyEqual >で再定義されています。

hash.h78 行で定義されています。

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
typedef boost::call_traits< KeyEqual >::param_type gslib::static_container::hash< Key, Value, Cont, KeyEqual >::key_equal
 

hash.h80 行で定義されています。

参照元 gslib::static_container::hash< Key, Value, Cont, KeyEqual >::key_comp::key_comp().

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
typedef std::pair< Key, Value > gslib::static_container::hash< Key, Value, Cont, KeyEqual >::pair_type
 

hash.h76 行で定義されています。


コンストラクタとデストラクタ

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
gslib::static_container::hash< Key, Value, Cont, KeyEqual >::hash key_equal  equal = KeyEqual()  )  [inline]
 

hash.h103 行で定義されています。

00103 : cont_(), equal_( equal ) {}

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
gslib::static_container::hash< Key, Value, Cont, KeyEqual >::hash const Cont &  cont,
key_equal  equal = KeyEqual()
[inline]
 

hash.h104 行で定義されています。

00104 : cont_( cont ), equal_( equal ) {}


関数

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
const_iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::begin  )  const [inline]
 

hash.h114 行で定義されています。

00114                                          {
00115                 return cont_.begin();
00116             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::begin  )  [inline]
 

hash.h106 行で定義されています。

参照元 gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::empty(), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::find(), と gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::size().

00106                              {
00107                 return cont_.begin();
00108             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
void gslib::static_container::hash< Key, Value, Cont, KeyEqual >::clear  )  [inline]
 

hash.h180 行で定義されています。

00180                          {
00181                 cont_.clear();
00182             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
bool gslib::static_container::hash< Key, Value, Cont, KeyEqual >::empty  )  const [inline]
 

hash.h130 行で定義されています。

00130                                {
00131                 return begin() == end();
00132             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
const_iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::end  )  const [inline]
 

hash.h118 行で定義されています。

00118                                        {
00119                 return cont_.end();
00120             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::end  )  [inline]
 

hash.h110 行で定義されています。

参照元 gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::empty(), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::find(), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::insert(), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::operator[](), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::push_back(), と gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::size().

00110                            {
00111                 return cont_.end();
00112             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
void gslib::static_container::hash< Key, Value, Cont, KeyEqual >::erase iterator  it  )  [inline]
 

hash.h177 行で定義されています。

00177                                       {
00178                 cont_.erase( it );
00179             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::find typename boost::call_traits< Key >::param_type  key  )  [inline]
 

hash.h126 行で定義されています。

00126                                                                             {
00127                 return find_if( begin(), end(), key_comp( key, equal_ ) );
00128             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
const_iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::find typename boost::call_traits< Key >::param_type  key  )  const [inline]
 

hash.h122 行で定義されています。

参照元 gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::insert(), gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::operator[](), と gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::search().

00122                                                                                         {
00123                 return find_if( begin(), end(), key_comp( key, equal_ ) );
00124             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
const Cont& gslib::static_container::hash< Key, Value, Cont, KeyEqual >::get_container  )  const [inline]
 

コンテナ取得

hash.h190 行で定義されています。

00190                                               {
00191                 return cont_;
00192             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
Cont& gslib::static_container::hash< Key, Value, Cont, KeyEqual >::get_container  )  [inline]
 

コンテナ取得

hash.h185 行で定義されています。

00185                                   {
00186                 return cont_;
00187             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
std::pair< iterator, bool > gslib::static_container::hash< Key, Value, Cont, KeyEqual >::insert const_reference  v  )  [inline]
 

戻り値:
first が、挿入後のイテレーター。second が挿入作業の有無を示す bool からなる pair を返す

hash.h163 行で定義されています。

00163                                                                   {
00164                 iterator it = find( v.first );
00165                 if ( it != end() ) {
00166                     //  すでに同じキーのペアが存在したので、それを返す
00167                     return std::make_pair(
00168                         it,
00169                         false );
00170                 } else {
00171                     //  存在しなかったので挿入
00172                     return std::make_pair(
00173                         push_back( v ),
00174                         false );
00175                 }
00176             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
Value& gslib::static_container::hash< Key, Value, Cont, KeyEqual >::operator[] typename boost::call_traits< Key >::param_type  key  )  [inline]
 

単なる検索目的でむやみに使うと、挿入が何度も行われるので、使用には十分ご注意を。

hash.h150 行で定義されています。

00150                                                                                   {
00151                 iterator it = find( key );
00152                 if ( it != end() ) {
00153                     return it->second;
00154                 } else {
00155                     return push_back( value_type( key, Value() ) )->second;
00156                 }
00157             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
iterator gslib::static_container::hash< Key, Value, Cont, KeyEqual >::push_back const_reference  v  )  [inline, private]
 

hash.h96 行で定義されています。

参照元 gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::insert(), と gslib::static_container::hash< Key, Value, list< std::pair< Key, Value >, MaxSize >, KeyEqual >::operator[]().

00096                                                     {
00097                 cont_.push_back( v );
00098                 iterator it = end();
00099                 --it;
00100                 return it;
00101             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
Value& gslib::static_container::hash< Key, Value, Cont, KeyEqual >::search typename boost::call_traits< Key >::param_type  key  )  [inline]
 

hash.h142 行で定義されています。

00142                                                                             {
00143                 return find( key )->second;
00144             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
const Value& gslib::static_container::hash< Key, Value, Cont, KeyEqual >::search typename boost::call_traits< Key >::param_type  key  )  const [inline]
 

hash.h138 行で定義されています。

00138                                                                                         {
00139                 return find( key )->second;
00140             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
size_type gslib::static_container::hash< Key, Value, Cont, KeyEqual >::size  )  const [inline]
 

hash.h134 行で定義されています。

00134                                    {
00135                 return std::distance( begin(), end() );
00136             }

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
gslib::static_container::hash< Key, Value, Cont, KeyEqual >::STATIC_CONTAINER_MEMBERTYPEDEF pair_type   ) 
 


変数

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
Cont gslib::static_container::hash< Key, Value, Cont, KeyEqual >::cont_ [private]
 

hash.h83 行で定義されています。

template<typename Key, typename Value, typename Cont, typename KeyEqual = std::equal_to< Key >>
KeyEqual gslib::static_container::hash< Key, Value, Cont, KeyEqual >::equal_ [private]
 

hash.h84 行で定義されています。


このクラスの説明は次のファイルから生成されました:
static_containerに対してSat Nov 27 15:03:21 2004に生成されました。 doxygen 1.3.6