RWGSortedVector man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



RWGSortedVector(3C++)					 RWGSortedVector(3C++)

Name
     RWGSortedVector(val) - Rogue Wave library class

Synopsis
	      #include <rw/gsortvec.h>

	      declare(RWGSortedVector,val)
	  implement(RWGSortedVector, val)
	  RWGSortedVector(val) v;    // A sorted vector of vals .

Description
     Class RWGSortedVector(val) represents a vector of elements of val val,
     sorted using an insertion sort.  The elements can be retrieved using an
     index or a search.	 Duplicates are allowed. Objects of val
     RWGSortedVector(val) are declared with macros defined in the standard C++
     header file <generic.h>.  Note that it is a value-based collection: items
     are copied in and out of the collection.  The class val must have:
	  a default constructor;

	  well-defined copy semantics (val::val(const val&) or equiv.);

	  well-defined assignment semantics (val::operator=(const val&) or
	  equiv.);

	  well-defined equality semantics (val::operator==(const val&) or
	  equiv.);

	  well-defined less-than semantics (val::operator<(const val&) or
	  equiv.)..

     To use this class you must declare and implement its base class as well
     as the class itself.  For example, here is how you declare and implement
     a sorted collection of doubles:.Ex
	 declare(RWGVector,double)		      // Declare base class

	      declare(RWGSortedVector,double)	// Declare sorted vector
	  // In one and only one .cpp file you must put the following:
	  implement(RWGVector,double)	      // Implement base class
	  implement(RWGSortedVector,double)   // Implement sorted vector

     For each val of RWGSortedVector you must include one (and only one) call
     to the macro implement somewhere in your code for both the
     RWGSortedVector itself and for its base class RWGVector.  Insertions and
     retrievals are done using a binary search.	 Note that the constructor of

									Page 1

RWGSortedVector(3C++)					 RWGSortedVector(3C++)

     an RWGSortedVector(val) requires a pointer to a "comparison function."
     This function should have protoval:

	      int comparisonFunction(const val* a, const val* b);

     and should return an int less than, greater than, or equal to zero,
     depending on whether the item pointed to by a is less than, greater than,
     or equal to the item pointed to by b.  Candidates from the collection
     will appear as a, the key as b.

Persistence
     None

Example
     Here's an example of a sorted vector of ints:

	      #include <rw/gsortvec.h>
	  #include <rw/rstream.h>
	  declare(RWGVector,int)
	  declare(RWGSortedVector,int)
	  implement(RWGVector,int)
	  implement(RWGSortedVector,int)
	  // Declare and define the "comparison function":
	  int compFun(const int* a, const int* b)  {
	    return *a - *b;
	  }
	  main()  {
	    // Declare and define an instance,
	    // using the comparison function 'compFun':
	    RWGSortedVector(int) avec(compFun);
	    // Do some insertions:
	    avec.insert(3);	     // 3
	    avec.insert(17);	     // 3 17
	    avec.insert(5);	     // 3  5 17
	    cout << avec(1);	     // Prints '5'
	    cout << avec.index(17);  // Prints '2'
	  }

Public Constructors
	      RWGSortedVector(val)( int (*f)(const val*, const val*) );

     Construct a sorted vector of elements of val val, using the comparison
     function pointed to by f.	The initial capacity of the vector will be set
     by the value RWDEFAULT_CAPACITY.  The capacity will automatically be
     increased should too many items be inserted.

									Page 2

RWGSortedVector(3C++)					 RWGSortedVector(3C++)

	      RWGSortedVector(val)(int (*f)(const val*, const val*),
			  size_t N);

     Construct a sorted vector of elements of val val, using the comparison
     function pointed to by f.	The initial capacity of the vector will be N.
     The capacity will automatically be increased should too many items be
     inserted.

Public Member Functions
	      val
	  operator()(size_t i) const;

     Return the ith value in the vector.  The index i must be between 0 and
     the length of the vector less one.	 No bounds checking is performed.

	      val
	  operator[](size_t i) const;

     Return the ith value in the vector.  The index i must be between 0 and
     the length of the vector less one.	 Bounds checking is performed.

	      size_t
	  entries() const;

     Returns the number of items currently in the collection.

	      size_t
	  index(val v);

     Return the index of the item with value v.	 The value "RW_NPOS" is
     returned if the value does not occur in the vector.  A binary search,
     using the comparison function, is done to find the value.	If duplicates
     are present, the index of the first instance is returned.

	      RWBoolean
	  insert(val v);

     Insert the new value v into the vector.  A binary search, using the
     comparison function, is performed to determine where to insert the value.
     The item will be inserted after any duplicates.  If the insertion causes
     the vector to exceed its capacity, it will automatically be resized by an
     amount given by RWDEFAULT_RESIZE.

	      void
	  removeAt(size_t indx);

									Page 3

RWGSortedVector(3C++)					 RWGSortedVector(3C++)

     Remove the item at position indx from the collection.  The value of indx
     must be between zero and the length of the collection less one.  No
     bounds checking is performed.  Old items from index indx+1 will be
     shifted to lower indices.	E.g., the item at index indx+1 will be moved
     to position indx, etc. .

	      void
	  resize(size_t newCapacity);

     Change the capacity of the collection to newCapacity, which must be at
     least as large as the present number of items in the collection.  Note
     that the actual number of items in the collection does not change, just
     the capacity.

									Page 4

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net