Код: Выделить всё
vectorКод: Выделить всё
Код: Выделить всё
[ 2D matrix, K rows x N columns ] * [ 1D column vector, N elements ] = [ 1D column vector, K elements ]В основном 2D -вектор умножается на 1D -вектор и приводит к 1D -вектору. Другая возможность состоит в том, чтобы использовать вектор двухмерного измерения, например: < /p>
Код: Выделить всё
[ 2D matrix, K rows x N columns ] * [ 2D matrix, N rows x 1 column ] = [ 2D matrix, K rows x 1 column ]Таким образом, используются только 2D векторы. Наконец, реализация может работать так: < /p>
Код: Выделить всё
[ 2D matrix, K rows x N columns ] * [ 2D matrix, N rows x 1 column ] = [ 1D column vector, K elements ], где, несмотря на то, что входные значения являются двумерными векторами, результат распознается как 1d и как таковая, предоставленная функцией.
конкретная реализация не так важна. Можно написать функцию, которая принимает любой тип вектора (1d или 2d). В целом, результат - это то, что имеет значение, если такая функция часто используется в программе. По сути, вопросы являются наиболее распространенной практикой? Что в принципе лучше использовать в программе? 2D векторы более мощные, но медленнее. Кроме того, что меня беспокоит, и может сделать мой код хаотичным, так это решение использовать ли 1D векторы < /p>
Код: Выделить всё
vector vec(N, def_val);, когда это возможно, или 2D векторы, которые (в случае 1 -го измерения), на самом деле, будут иметь две возможности:
Код: Выделить всё
vector vec(N, vector(1, def_val));
vector vec(1, vector(N, def_val));
Подробнее здесь: https://stackoverflow.com/questions/797 ... ementation
Мобильная версия