CMS 3D CMS Logo

Classes | Public Types | Public Member Functions | Private Attributes

StringMap Class Reference

#include <StringMap.h>

List of all members.

Classes

class  MatchByNumber
class  MatchByString

Public Types

typedef vector_type::const_iterator const_iterator
typedef std::pair< std::string,
int32_t > 
value_type
typedef std::vector< value_typevector_type

Public Member Functions

void add (const std::string &string, int32_t value)
const_iterator begin () const
void clear ()
const_iterator end () const
const_iterator find (int32_t number) const
const_iterator find (const std::string &string) const
const std::string & operator[] (int32_t number) const
int32_t operator[] (const std::string &string) const
size_t size () const
void sort ()

Private Attributes

std::vector< std::pair
< std::string, int32_t > > 
entries_

Detailed Description

Definition at line 8 of file StringMap.h.


Member Typedef Documentation

typedef vector_type::const_iterator StringMap::const_iterator

Definition at line 12 of file StringMap.h.

typedef std::pair<std::string, int32_t> StringMap::value_type

Definition at line 10 of file StringMap.h.

typedef std::vector<value_type> StringMap::vector_type

Definition at line 11 of file StringMap.h.


Member Function Documentation

void StringMap::add ( const std::string &  string,
int32_t  value 
)

Definition at line 3 of file StringMap.cc.

References entries_.

                                                          {
    entries_.push_back(value_type(string,value));
}
const_iterator StringMap::begin ( void  ) const [inline]

Definition at line 31 of file StringMap.h.

References entries_.

{ return entries_.begin(); }
void StringMap::clear ( void  )

Definition at line 11 of file StringMap.cc.

References entries_.

                      {
    entries_.clear();
}
const_iterator StringMap::end ( void  ) const [inline]

Definition at line 32 of file StringMap.h.

References entries_.

Referenced by find(), and operator[]().

{ return entries_.end(); }
StringMap::const_iterator StringMap::find ( int32_t  number) const

Definition at line 31 of file StringMap.cc.

References entries_.

                                                            {
    return std::find_if(entries_.begin(), entries_.end(), MatchByNumber(number)); 
}
StringMap::const_iterator StringMap::find ( const std::string &  string) const

Definition at line 26 of file StringMap.cc.

References end(), entries_, and match().

Referenced by operator[]().

                                                                     {
    vector_type::const_iterator match =  std::lower_bound(entries_.begin(), entries_.end(), string, MatchByString());
    return (match->first == string ? match : end());
}
const std::string & StringMap::operator[] ( int32_t  number) const

return associated string, or "" if none is there in case the association is not unque, the choice of the returned value is undetermined note: works only after it's sorted

Definition at line 20 of file StringMap.cc.

References end(), find(), and match().

                                                            {
    static std::string empty_;
    vector_type::const_iterator match = find(number);
    return (match == end() ? empty_ : match->first);
}
int32_t StringMap::operator[] ( const std::string &  string) const

return associated number, or -1 if no one is found in case the association is not unque, the choice of the returned value is undetermined note: works only after it's sorted

Definition at line 15 of file StringMap.cc.

References end(), entries_, and match().

                                                           {
    vector_type::const_iterator match =  std::lower_bound(entries_.begin(), entries_.end(), string, MatchByString());
    return (match == end() ? -1 : match->second);
}
size_t StringMap::size ( void  ) const [inline]

Definition at line 34 of file StringMap.h.

References entries_.

{ return entries_.size(); }
void StringMap::sort ( )

Definition at line 7 of file StringMap.cc.

References entries_.

                     {
    std::sort(entries_.begin(), entries_.end());
}

Member Data Documentation

std::vector< std::pair<std::string, int32_t> > StringMap::entries_ [private]

Definition at line 36 of file StringMap.h.

Referenced by add(), begin(), clear(), end(), find(), operator[](), size(), and sort().