ArgSort

Косвенная сортировка матрицы или вектора.

vector vector::Sort(
  func_name  compare_func=NULL // функция сравнения
  T          context             // параметр для пользовательской функции сортировки
   );
 
matrix matrix::Sort(
  func_name  compare_func=NULL   // функция сравнения
  T          context             // параметр для пользовательской функции сортировки
   );
 
matrix matrix::Sort(
  const int  axis,               // ось для сортировки
  func_name  compare_func=NULL   // функция сравнения
  T          context             // параметр для пользовательской функции сортировки
   );

Параметры

axis

[in]  Ось, по которой производится сортировка: 0 — горизонтальная, 1 — вертикальная.

func_name

[in]  Компаратор. Вы можете указать одно из значений перечисления ENUM_SORT_MODE или собственную функцию сравнения. Если функция не указана, используется сортировка по возрастанию.
 
Пользовательская функция сравнения может быть двух видов:

  • int comparator(T x1,T x2)
  • int comparator(T x1,T x2,TContext context)

Здесь T — тип матрицы или вектора, а TContex — тип переменной context, переданной в качестве дополнительного параметра в метод Sort.

context

[in]  Дополнительный необязательный параметр, который можно передать в пользовательскую функцию сортировки.

Возвращаемое значение

Вектор или матрица с индексами сортированных элементов. Например, результат [4,2,0,1,3] говорит, что в нулевой позиции упорядоченного вектора должен быть быть элемент с индексом 4, в первой — элемент с индексом 2 и т.д.