slice_array man page on SunOS

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

slice_array(3C++)		       -		     slice_array(3C++)

Standard C++ Library Copyright 1998, Rogue Wave Software, Inc.

NAME
       slice_array

	-  A  numeric  array  class  for representing a BLAS-like slice from a
       valarray.

SYNOPSIS
       #include <valarray>
       template <class T>
       class slice_array ;

DESCRIPTION
       slice_array<T> gives a slice view into  a  valarray.  Slice_arrays  are
       only  produced  by applying the slice subscript operator to a valarray.
       The elements in a slice_array are references to	selected  elements  in
       the  valarray (so changing an element in the slice_array really changes
       the corresponding element in the	 valarray).  A	slice_array  does  not
       itself  hold any distinct elements. The template cannot be instantiated
       directly since all its constructors are private. However, you can  eas‐
       ily  copy  a  slice_array  to a valarray using either the valarray copy
       constructor or the assignment operator. Reference semantics are lost at
       that point.

INTERFACE
       template <class T> class slice_array {
       public:

  // types
 typedef T value_type;

  // destructor
  ~slice_array();

  // public assignment
 void operator= (const valarray<T>& array) const;
  // computed assignment
 void operator*= (const valarray<T>& array) const;
 void operator/= (const valarray<T>& array) const;
 void operator%= (const valarray<T>& array) const;
 void operator+= (const valarray<T>& array) const;
 void operator-= (const valarray<T>& array) const;
 void operator^= (const valarray<T>& array) const;
 void operator&= (const valarray<T>& array) const;
 void operator|= (const valarray<T>& array) const;
 void operator<<= (const valarray<T>& array) const;
 void operator>>= (const valarray<T>& array) const;

  // other
 void operator= (const T&);

private:
  // constructors
 slice_array();
 slice_array(const slice_array<T>&);
  // operator =
 slice_array<T>& operator= (const slice_array<T>& array);
};

CONSTRUCTORS
       slice_array();
       slice_array(const slice_array&);

   All	slice_array  constructors  are	private and cannot be called directly.
   This prevents copy construction of slice_arrays.

ASSIGNMENT OPERATORS
       void operator=(const valarray<T>& x) const;

   Assigns values from x to the selected elements of the  valarray  that  self
   refers  to. Remember that a slice_array never holds any elements itself, it
   simply refers to selected elements in the valarray used to generate it.

slice_array<;T>&
operator=(const slice-_array<T>& x);

   Private assignment operator. Cannot be  called  directly,  thus  preventing
   assignment between slice_arrays.

COMPUTED ASSIGNMENT OPERATORS
       void operator*=(const valarray<T>& val) const;
       void operator/=(const valarray<T>& val) const;
       void operator%=(const valarray<T>& val) const;
       void operator+=(const valarray<T>& val) const;
       void operator-=(const valarray<T>& val) const;
       void operator^=(const valarray<T>& val) const;
       void operator&=(const valarray<T>& val) const;
       void operator|=(const valarray<T>& val) const;
       void operator<<=(const valarray<T>& val) const;
       void operator>>=(const valarray<T>& val) const;

   Applies  the	 indicated  operation  using elements from val to the selected
   elements of the valarray that self refers to. Remember that	a  slice_array
   never  holds	 any elements itself; it simply refers to selected elements in
   the valarray used to generate it.

MEMBER FUNCTIONS
       void operator= (const T& x);

   Assigns x to the selected elements of the valarray that self refers to.

EXAMPLE
       //
       // slice_array.cpp
       //
       #include "valarray.h"  // Contains a valarray
		       // stream inserter
using namespace std;

int main(void)
{
 int ibuf[10] = {0,1,2,3,4,5,6,7,8,9};
 int ibuf2[5] = {1,3,5,7,9};

  // create a valarray of ints
 valarray<int>	       vi(ibuf,10);
 valarray<int>	       vi2(ibuf2,5);

  // print it out
 cout << vi << endl << vi2 << endl;

  // Get a slice and assign that slice to another array
 slice_array<int> sl = vi[slice(1,5,2)];
 valarray<int> vi3 = sl;

  // print out the slice
 cout << vi3 << endl;

  // Add slice from vi2 to slice of vi1
 sl += vi2;

  // print out vi1 again
 cout << vi << endl;

 return 0;
}

Program Output

[0,1,2,3,4,5,6,7,8,9]
[1,3,5,7,9]
[1,3,5,7,9]
[0,2,2,6,4,10,6,14,8,18]

WARNINGS
       If your compiler does not support namespaces, then you do not need  the
       using declaration for std.

SEE ALSO
       slice, valarray, gslice, gslice_array, mask_array, indirect_array

Rogue Wave Software		  02 Apr 1998		     slice_array(3C++)
[top]

List of man pages available for SunOS

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