Rogue Wave Software logo banner

Click on the banner to return to the Class Reference home page.

©Copyright 1996 Rogue Wave Software

rw_hashset

Synopsis

#include <rw/rwstl/hashset.h>
rw_hashset<T,Hash,EQ> set;

Description

Class rw_hashset<T,Hash,EQ> maintains a collection of T, implemented as a hash table in which there may not be more than one instance of any given T. Since this is a value based collection, objects are copied into and out of the collection. As with all classes that meet the ANSI associative container specification, rw_hashset provides for iterators that reference its elements. Operations that alter the contents of rw_hashset may invalidate other iterators that reference the container. Since the contents of rw_hashset are in pseudo-random order, the only iterator ranges that will usually make sense are the results of calling equal_range(key), and the entire range from begin() to end().

Persistence

None

Public Typedefs

typedef T                   key_type;
typedef T                   value_type; // or ... "const K"
typedef Hash                key_hash;
typedef EQ                  key_equal;
typedef (unsigned)          size_type; //from rw_slist
typedef (int)               difference_type; // from rw_slist
typedef (value_type&)       reference;
typedef (const value_type&) const_reference; //from rw_slist
typedef (scoped Iterator)     iterator;
typedef (scoped ConsIterator) const_iterator;

Public Constructors

rw_hashset<T,Hash,EQ>(size_type sz = 1024, 
                      const Hash& h = Hash(), 
                      const EQ& eq = EQ());
rw_hashset<T,Hash,EQ>(const rw_hashset<T,Hash,EQ>& set);
rw_hashset<T,Hash,EQ>(const_iterator first, 
                      const_iterator bound
                      size_type sz=1024,
                      const Hash& h = Hash(), 
                      const EQ& eq = EQ());
rw_hashset<T,Hash,EQ>(const value_type* first, 
                      const value_type* bound
                      size_type sz=1024,
                      const Hash& h = Hash(), 
                      const EQ& eq = EQ());

Public Destructor

~rw_hashset<T,Hash,EQ>();

Public Operators

rw_hashset<T,Hash,EQ>&
operator=(const rw_hashset<T,Hash,EQ>& rhs);
bool
operator==(const rw_hashset<T,Hash,EQ> & rhs) const;

Accessors

iterator
begin();
const_iterator
begin() const;
iterator
end();
const_iterator
end() const;
pair<const_iterator, const_iterator>
equal_range(const key_type key) const;
pair<iterator, iterator>
equal_range(const key_type key);
onst_iterator
lower_bound(const key_type& key) const;
iterator
lower_bound(const key_type& key);
const_iterator
upper_bound(const key_type& key) const;
iterator
upper_bound(const key_type& key);

Const Public Member Functions

size_type
capacity() const;
bool
empty() const;
float
fill_ratio() const;
size_type
size() const;

Mutators

void
clear();
size_type
erase(const key_type& key);
iterator
erase(iterator iter);
iterator
erase(iterator first, iterator bound);
pair<iterator,bool>
insert(const value_type& val);
size_type
insert(iterator ignore, const value_type& val);
size_type
insert(const value_type* first, const value_type* bound);
size_type
insert(const_iterator first, const_iterator bound);
void
swap(rw_hashset<T,Hash,EQ>& other);

Special Methods for Sets

size_type
count(const key_type& key) const;
const_iterator
find(const key_type& key) const;
iterator
find(const key_type& key);
void
resize(size_type sz);