Swap

Scambia i buffer tra matrici, vettori e array dinamici dello stesso tipo.

bool matrix<T>::Swap(
  matrix<T>  &mat     // matrice da scambiare
   );
 
bool matrix<T>::Swap(
  vector<T>  &vec     // vettore da scambiare
   );
 
bool matrix<T>::Swap(
  T          &array[] // array da scambiare
   );
 
bool vector<T>::Swap(
  vector<T>  &vec     // vettore da scambiare
   );
 
bool vector<T>::Swap(
  matrix<T>  &mat     // matrice da scambiare
   );
 
bool vector<T>::Swap(
  T          &array[] // array da scambiare
   );
 

Parametri

mat, vec o array

[in]  La matrice, il vettore o l'array dinamico il cui buffer associato deve essere scambiato.

Valore restituito

Restituisce true in caso di successo, altrimenti false.

Nota

La dimensione dell'array deve essere un multiplo della dimensione della matrice o del vettore. La dimensione del vettore deve essere un multiplo della dimensione della matrice.

Esempio:

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);
 
//--- esempio negativo: array non dinamico
   T arr1D[10];
   if(a.Swap(arr1D) || GetLastError()!=ERR_INVALID_ARRAY)
      return(false);
   if(v.Swap(arr1D))
      return(false);
 
//--- esempio negativo: dimensione dell'array non valida
   T arr2D[][3];
   ArrayResize(arr2D,5);
   v.Resize(15);
   if(a.Swap(arr2D) || !v.Swap(arr2D))
      return(false);
 
   return(true);
  }
//+------------------------------------------------------------------+
//| Funzione di avvio dello script                                    |
//+------------------------------------------------------------------+
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);
  }

Vedi anche

Assign