Swap

동일한 유형의 행렬, 벡터 및 동적 배열 간에 버퍼를 교환합니다.

bool matrix<T>::Swap(
  matrix<T>  &mat     // 교환할 행렬
   );
 
bool matrix<T>::Swap(
  vector<T>  &vec     // 교환할 벡터
   );
 
bool matrix<T>::Swap(
  T          &array[] // 교환할 배열
   );
 
bool vector<T>::Swap(
  vector<T>  &vec     // 교환할 벡터
   );
 
bool vector<T>::Swap(
  matrix<T>  &mat     // 교환할 행렬
   );
 
bool vector<T>::Swap(
  T          &array[] // 교환할 배열
   );
 

매개변수

mat, vec 또는 array

[in]  연결된 버퍼를 교환할 행렬, 벡터 또는 동적 배열입니다.

반환값

성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

참고

배열 크기는 행렬 또는 벡터 크기의 배수여야 합니다. 벡터 크기는 행렬 크기의 배수여야 합니다.

예제:

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);
 
//--- 잘못된 예: 동적 배열이 아님
   T arr1D[10];
   if(a.Swap(arr1D) || GetLastError()!=ERR_INVALID_ARRAY)
      return(false);
   if(v.Swap(arr1D))
      return(false);
 
//--- 잘못된 예: 배열 크기가 올바르지 않음
   T arr2D[][3];
   ArrayResize(arr2D,5);
   v.Resize(15);
   if(a.Swap(arr2D) || !v.Swap(arr2D))
      return(false);
 
   return(true);
  }
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
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);
  }

참고 항목

Assign