NAMD
Public Member Functions | List of all members
UniqueSortedArray< Type > Class Template Reference

#include <ResizeArrayRaw.h>

Inheritance diagram for UniqueSortedArray< Type >:
SortedArray< Elem > SortableResizeArray< Type > ResizeArray< Elem >

Public Member Functions

 UniqueSortedArray (int s=0)
 
 UniqueSortedArray (UniqueSortedArray< Elem > &ua)
 
 UniqueSortedArray (SortedArray< Elem > &sa)
 
UniqueSortedArray< Elem > & operator= (UniqueSortedArray< Elem > &ua)
 
UniqueSortedArray< Elem > & operator= (SortedArray< Elem > &sa)
 
int add (const Elem &elem)
 
int insert (const Elem &elem)
 
- Public Member Functions inherited from SortedArray< Elem >
 SortedArray (void)
 
 SortedArray (int s)
 
 SortedArray (SortedArray< Elem > &sa)
 
 SortedArray (SortableResizeArray< Elem > &ra)
 
SortedArray< Elem > & operator= (SortedArray< Elem > &sa)
 
SortedArray< Elem > & operator= (SortableResizeArray< Elem > &ra)
 
int load (const Elem &elem)
 
int add (const Elem &elem)
 
void del (const Elem &elem)
 
void sort (void)
 
int bsearch (const Elem &elem)
 
int insert (const Elem &elem)
 
int index (const Elem &elem)
 
Elem * find (const Elem &elem)
 
- Public Member Functions inherited from SortableResizeArray< Type >
 SortableResizeArray (void)
 
 SortableResizeArray (int size)
 
 SortableResizeArray (ResizeArray< Elem > &ra)
 
 SortableResizeArray (SortableResizeArray< Elem > &ra)
 
 SortableResizeArray (const ResizeArray< Elem > *ra)
 
 SortableResizeArray (const SortableResizeArray< Elem > *ra)
 
 SortableResizeArray (Elem **const r, int numElem, int maxElem)
 
SortableResizeArray< Elem > & operator= (SortableResizeArray< Elem > &sa)
 
 ~SortableResizeArray (void)
 
void init (void)
 
void sort (void)
 
void sort (int bot, int top)
 
void uniq (void)
 
int bsearch (const Elem &elem) const
 
- Public Member Functions inherited from ResizeArray< Elem >
iterator begin (void)
 
iterator end (void)
 
const_iterator const_begin (void) const
 
const_iterator const_end (void) const
 
 ResizeArray (void)
 
 ResizeArray (int s)
 
 ResizeArray (Elem **array, int arraySize, int allocSize=0)
 
void copy (ResizeArray< Elem > &ra)
 
void swap (ResizeArray< Elem > &ra)
 
bool shared () const
 
 ~ResizeArray (void)
 
void resize (int i)
 
void clear ()
 
void setall (const Elem &elem)
 
int add (const Elem &elem)
 
void del (int index, int num=1)
 
int insert (const Elem &elem, int index)
 
Elem & item (int i)
 
Elem & operator[] (int index)
 
const Elem & operator[] (int index) const
 
int size (void) const
 
int find (const Elem &e) const
 

Additional Inherited Members

- Public Types inherited from ResizeArray< Elem >
typedef Elem * iterator
 
typedef const Elem * const_iterator
 
- Protected Attributes inherited from SortedArray< Elem >
int isSorted
 
- Protected Attributes inherited from ResizeArray< Elem >
ResizeArrayRaw< Elem > rep
 

Detailed Description

template<class Type>
class UniqueSortedArray< Type >

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 28 of file ResizeArrayRaw.h.

Constructor & Destructor Documentation

template<class Type>
UniqueSortedArray< Type >::UniqueSortedArray ( int  s = 0)
inline

Definition at line 16 of file UniqueSortedArray.h.

template<class Type>
UniqueSortedArray< Type >::UniqueSortedArray ( UniqueSortedArray< Elem > &  ua)
inline

Definition at line 18 of file UniqueSortedArray.h.

template<class Type>
UniqueSortedArray< Type >::UniqueSortedArray ( SortedArray< Elem > &  sa)
inline

Definition at line 21 of file UniqueSortedArray.h.

21  : SortedArray<Elem>(sa) {
22  this->uniq();
23  }

Member Function Documentation

template<class Type>
int UniqueSortedArray< Type >::add ( const Elem &  elem)
inline

Definition at line 50 of file UniqueSortedArray.h.

Referenced by GlobalMasterIMD::get_vmd_forces(), and ComputeHomePatches::initialize().

50 { return(insert(elem)); }
int insert(const Elem &elem)
template<class Elem >
int UniqueSortedArray< Elem >::insert ( const Elem &  elem)
inline

Definition at line 58 of file UniqueSortedArray.h.

References ResizeArray< T >::insert().

Referenced by UniqueSortedArray< PatchElem >::add().

58  {
59  int found = this->bsearch(elem);
60  if (found == -1) {
61  return ResizeArray<Elem>::insert(elem, 0);
62  }
63  if (found < this->size() && this->rep[found] == elem) {
64  return -2;
65  }
66  if (found == (this->size()-1) && this->rep[found] < elem) {
67  return ResizeArray<Elem>::insert(elem, this->size());
68  } else {
69  return ResizeArray<Elem>::insert(elem, found);
70  }
71 }
ResizeArrayRaw< Elem > rep
Definition: ResizeArray.h:31
int insert(const Elem &elem, int index)
Definition: ResizeArray.h:109
int bsearch(const Elem &elem)
Definition: SortedArray.h:68
int size(void) const
Definition: ResizeArray.h:127
template<class Type>
UniqueSortedArray<Elem>& UniqueSortedArray< Type >::operator= ( UniqueSortedArray< Elem > &  ua)
inline

Definition at line 31 of file UniqueSortedArray.h.

31  {
33  return(*this);
34  }
SortedArray< Elem > & operator=(SortedArray< Elem > &sa)
Definition: SortedArray.h:38
template<class Type>
UniqueSortedArray<Elem>& UniqueSortedArray< Type >::operator= ( SortedArray< Elem > &  sa)
inline

Definition at line 36 of file UniqueSortedArray.h.

36  {
38  this->uniq();
39  return(*this);
40  }
SortedArray< Elem > & operator=(SortedArray< Elem > &sa)
Definition: SortedArray.h:38

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