У меня много элементов в матрице, и когда я обращаюсь к ним вручную, требуется довольно много времени, чтобы устранить все ошибки, возникающие из-за неправильной индексации ... Есть ли подходящая библиотека, которая может отслеживать, например, соседей,нумерация, если элемент находится на внешнем крае или нет и т. д.
например,
VA=
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
Теперь я хотел бы написать функцию, которая говорит что-то вроде
for every Neighbor to element at index 12(which would be 41)
do something
Я бы хотел, чтобы это распознавало элементы только с индексами 8 (31) и 13 (42).
Сейчас я использую векторы (vector<vector<int>>V;
), но код получаетдовольно сложно и неуклюже писать и читать, так как у меня есть эти раздражающие операторы if в каждой функции.пример:
for (int i=0;i<MatrixSIZE;i++)
if ((i+1)%rowSize!=0){//check that it's not in the outer edge.
//Do something
}
Какой подход вы бы предложили?Может ли boost :: MultiArray помочь мне в этом?Есть ли другие подобные?
UPDATE :: Так что я больше ищу шаблон, который может легко получить доступ к элементам, чем шаблон, который может делать матричные арифметики.