jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
jubatus::core::common::assoc_vector< K, V > Class Template Reference

#include <assoc_vector.hpp>

Collaboration diagram for jubatus::core::common::assoc_vector< K, V >:
Collaboration graph

Classes

struct  less_pair_and_key
 

Public Types

typedef data_type::const_iterator const_iterator
 
typedef std::vector< std::pair< K, V > > data_type
 
typedef data_type::iterator iterator
 

Public Member Functions

const_iterator begin () const
 
iterator begin ()
 
size_t count (const K &key) const
 
bool empty () const
 
const_iterator end () const
 
iterator end ()
 
iterator erase (const K &key)
 
iterator erase (iterator it)
 
const_iterator find (const K &key) const
 
iterator find (const K &key)
 
template<typename Packer >
void msgpack_pack (Packer &pk) const
 
void msgpack_unpack (msgpack::object o)
 
V & operator[] (const K &key)
 
size_t size () const
 

Private Attributes

std::vector< std::pair< K, V > > data_
 

Detailed Description

template<typename K, typename V>
class jubatus::core::common::assoc_vector< K, V >

Definition at line 30 of file assoc_vector.hpp.

Member Typedef Documentation

template<typename K , typename V >
typedef data_type::const_iterator jubatus::core::common::assoc_vector< K, V >::const_iterator

Definition at line 33 of file assoc_vector.hpp.

template<typename K , typename V >
typedef std::vector<std::pair<K, V> > jubatus::core::common::assoc_vector< K, V >::data_type

Definition at line 32 of file assoc_vector.hpp.

template<typename K , typename V >
typedef data_type::iterator jubatus::core::common::assoc_vector< K, V >::iterator

Definition at line 34 of file assoc_vector.hpp.

Member Function Documentation

template<typename K , typename V >
const_iterator jubatus::core::common::assoc_vector< K, V >::begin ( ) const
inline
template<typename K , typename V >
iterator jubatus::core::common::assoc_vector< K, V >::begin ( )
inline

Definition at line 40 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

40  {
41  return data_.begin();
42  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
size_t jubatus::core::common::assoc_vector< K, V >::count ( const K &  key) const
inline

Definition at line 77 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::end(), and jubatus::core::common::assoc_vector< K, V >::find().

77  {
78  if (find(key) == end()) {
79  return 0;
80  } else {
81  return 1;
82  }
83  }
const_iterator find(const K &key) const

Here is the call graph for this function:

template<typename K , typename V >
bool jubatus::core::common::assoc_vector< K, V >::empty ( ) const
inline

Definition at line 56 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

56  {
57  return data_.empty();
58  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
const_iterator jubatus::core::common::assoc_vector< K, V >::end ( ) const
inline
template<typename K , typename V >
iterator jubatus::core::common::assoc_vector< K, V >::end ( )
inline

Definition at line 48 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

48  {
49  return data_.end();
50  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
iterator jubatus::core::common::assoc_vector< K, V >::erase ( const K &  key)
inline

Definition at line 85 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_, jubatus::core::common::assoc_vector< K, V >::end(), and jubatus::core::common::assoc_vector< K, V >::find().

Referenced by jubatus::core::storage::inverted_index_storage::put_diff().

85  {
86  iterator it = find(key);
87  if (it != data_.end()) {
88  return erase(it);
89  } else {
90  return end();
91  }
92  }
const_iterator find(const K &key) const
std::vector< std::pair< K, V > > data_

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename K , typename V >
iterator jubatus::core::common::assoc_vector< K, V >::erase ( iterator  it)
inline

Definition at line 94 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

94  {
95  return data_.erase(it);
96  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
const_iterator jubatus::core::common::assoc_vector< K, V >::find ( const K &  key) const
inline

Definition at line 60 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::begin(), and jubatus::core::common::assoc_vector< K, V >::end().

Referenced by jubatus::core::storage::inverted_index_storage::add_inp_scores(), jubatus::core::common::assoc_vector< K, V >::count(), jubatus::core::common::assoc_vector< K, V >::erase(), and jubatus::core::common::assoc_vector< K, V >::find().

60  {
61  const_iterator it = std::lower_bound(begin(),
62  end(),
63  key,
64  less_pair_and_key());
65  if (it != end() && it->first == key) {
66  return it;
67  } else {
68  return end();
69  }
70  }
const_iterator begin() const
data_type::const_iterator const_iterator

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename K , typename V >
iterator jubatus::core::common::assoc_vector< K, V >::find ( const K &  key)
inline

Definition at line 72 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::begin(), and jubatus::core::common::assoc_vector< K, V >::find().

72  {
73  const_iterator it = const_cast<const assoc_vector&>(*this).find(key);
74  return begin() + (it - begin());
75  }
const_iterator begin() const
data_type::const_iterator const_iterator

Here is the call graph for this function:

template<typename K , typename V >
template<typename Packer >
void jubatus::core::common::assoc_vector< K, V >::msgpack_pack ( Packer &  pk) const
inline

Definition at line 109 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

109  {
110  pk.pack_map(data_.size());
111  for (std::size_t i = 0; i < data_.size(); ++i) {
112  pk.pack(data_[i].first);
113  pk.pack(data_[i].second);
114  }
115  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
void jubatus::core::common::assoc_vector< K, V >::msgpack_unpack ( msgpack::object  o)
inline

Definition at line 117 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

117  {
118  if (o.type != msgpack::type::MAP) {
119  throw msgpack::type_error();
120  }
121  std::vector<std::pair<K, V> > data(o.via.map.size);
122  for (std::size_t i = 0; i < data.size(); ++i) {
123  o.via.map.ptr[i].key.convert(&data[i].first);
124  o.via.map.ptr[i].val.convert(&data[i].second);
125  }
126  data.swap(data_);
127  }
std::vector< std::pair< K, V > > data_
template<typename K , typename V >
V& jubatus::core::common::assoc_vector< K, V >::operator[] ( const K &  key)
inline

Definition at line 98 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::begin(), jubatus::core::common::assoc_vector< K, V >::data_, and jubatus::core::common::assoc_vector< K, V >::end().

98  {
99  iterator it = std::lower_bound(begin(), end(), key, less_pair_and_key());
100  if (it != data_.end() && it->first == key) {
101  return it->second;
102  } else {
103  it = data_.insert(it, std::make_pair(key, V()));
104  return it->second;
105  }
106  }
std::vector< std::pair< K, V > > data_
const_iterator begin() const

Here is the call graph for this function:

template<typename K , typename V >
size_t jubatus::core::common::assoc_vector< K, V >::size ( ) const
inline

Definition at line 52 of file assoc_vector.hpp.

References jubatus::core::common::assoc_vector< K, V >::data_.

52  {
53  return data_.size();
54  }
std::vector< std::pair< K, V > > data_

Member Data Documentation

template<typename K , typename V >
std::vector<std::pair<K, V> > jubatus::core::common::assoc_vector< K, V >::data_
private

The documentation for this class was generated from the following file: