Swap

Échange les tampons entre matrices, vecteurs et tableaux dynamiques du même type.

bool matrix<T>::Swap(
  matrix<T>  &mat     // matrice à échanger
   );
 
bool matrix<T>::Swap(
  vector<T>  &vec     // vecteur à échanger
   );
 
bool matrix<T>::Swap(
  T          &array[] // tableau à échanger
   );
 
bool vector<T>::Swap(
  vector<T>  &vec     // vecteur à échanger
   );
 
bool vector<T>::Swap(
  matrix<T>  &mat     // matrice à échanger
   );
 
bool vector<T>::Swap(
  T          &array[] // tableau à échanger
   );
 

Paramètres

mat, vec ou array

[in]  La matrice, le vecteur ou le tableau dynamique dont le tampon associé doit être échangé.

Valeur de Retour

Renvoie true en cas de succès, sinon false.

Note

La taille du tableau doit être un multiple de la taille de la matrice ou du vecteur. La taille du vecteur doit être un multiple de la taille de la matrice.

Exemple:

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);
 
//--- exemple négatif : tableau non dynamique
   T arr1D[10];
   if(a.Swap(arr1D) || GetLastError()!=ERR_INVALID_ARRAY)
      return(false);
   if(v.Swap(arr1D))
      return(false);
 
//--- exemple négatif : taille de tableau incorrecte
   T arr2D[][3];
   ArrayResize(arr2D,5);
   v.Resize(15);
   if(a.Swap(arr2D) || !v.Swap(arr2D))
      return(false);
 
   return(true);
  }
//+------------------------------------------------------------------+
//| Fonction de démarrage du 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);
  }

Voir aussi

Assign