Swap

Tauscht die Puffer zwischen Matrizen, Vektoren und dynamischen Arrays desselben Typs aus.

bool matrix<T>::Swap(
  matrix<T>  &mat     // zu tauschende Matrix
   );
 
bool matrix<T>::Swap(
  vector<T>  &vec     // zu tauschender Vektor
   );
 
bool matrix<T>::Swap(
  T          &array[] // zu tauschendes Array
   );
 
bool vector<T>::Swap(
  vector<T>  &vec     // zu tauschender Vektor
   );
 
bool vector<T>::Swap(
  matrix<T>  &mat     // zu tauschende Matrix
   );
 
bool vector<T>::Swap(
  T          &array[] // zu tauschendes Array
   );
 

Parameter

mat, vec oder array

[in]  Die Matrix, der Vektor oder das dynamische Array, dessen zugehöriger Puffer getauscht werden soll.

Rückgabewert

Gibt bei Erfolg true zurück, andernfalls false.

Hinweis

Die Arraygröße muss ein Vielfaches der Matrix- oder Vektorgröße sein. Die Vektorgröße muss ein Vielfaches der Matrixgröße sein.

Beispiel:

template<typename T>
bool Test(void)
  {
   matrix<Ta(3,5);
   matrix<Tb(5,4);
   vector<Tv(10);
 
   if(!a.Swap(b) || a.Rows()!=5 || a.Cols()!=4 || b.Rows()!=3 || b.Cols()!=5)
      return(false);
 
   if(!a.Swap(v) || v.Size()!=20 || a.Rows()!=1 || a.Cols()!=10)
      return(false);
 
//--- negatives Beispiel: kein dynamisches Array
   T arr1D[10];
   if(a.Swap(arr1D) || GetLastError()!=ERR_INVALID_ARRAY)
      return(false);
   if(v.Swap(arr1D))
      return(false);
 
//--- negatives Beispiel: ungültige Arraygröße
   T arr2D[][3];
   ArrayResize(arr2D,5);
   v.Resize(15);
   if(a.Swap(arr2D) || !v.Swap(arr2D))
      return(false);
 
   return(true);
  }
//+------------------------------------------------------------------+
//| Startfunktion des Skripts                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   bool res=true;
 
   res&=Test<double>();
   res&=Test<float>();
   res&=Test<complex>();
   res&=Test<complexf>();
 
   Print(res ? "passed" : "failed");
   return(res ? 0 : -1);
  }

Siehe auch

Assign