Я пишу метод, который делает что-то с вектором (одномерный массив).Я хочу применить его к строкам и столбцам матрицы (2-мерный массив: массив строк, каждая строка является массивом).Я хотел бы знать лучший подход для этого.
Векторный метод может принимать дополнительные параметры.Например, он может реализовать алгоритм сортировки (у меня его нет, но он достаточно сложный).
Теперь, если matrix
- матрица, и я хочу использовать метод в 4-й строке, япросто подключите matrix[3]
к методу, поэтому, когда метод получит доступ к a[n]
, он получит доступ к matrix[3][n]
.Но не так просто применить его к столбцу, потому что всякий раз, когда метод обращается к a[n]
, я бы хотел, чтобы он обращался к matrix[n][7]
(в случае 8-го столбца).
В прошлом я пыталсяприменять векторный метод для доступа к list[index[n]]
(list
и index
- векторы) всякий раз, когда к методу обращался a[n]
.Тогда я использовал способ копирования (№ 1. ниже).
Пути, о которых я думал (ни один изящный):
Создайте вектор, скопируйте содержимоестолбец в вектор, примените метод, затем скопируйте содержимое вектора обратно в столбец матрицы (и избавьтесь от вектора / повторно используйте его для применения в другом столбце позже).
Дублируйте метод, один из которых работает с a[n]
, где a
- векторный параметр, а другой - с a[n][m]
, где a
является параметром матрицы, а m
является параметром int.
Разработайте метод так, чтобы он работал либо с вектором, либо со столбцом матрицы, но тогда работа метода будет усложнена, если учитывать 2 случая при каждом обращении к элементу.
Может быть, параметр может быть функцией f
(как бы реализованной), поэтому метод использует f(n)
?Тогда для вектора vector
, f
задано так, что f(n)
возвращает (ссылка на) vector[n]
.Для строки матрицы matrix
, f(n)
возвращает matrix[row][n]
, а для столбца f(n)
возвращает matrix[n][column]