足し算
の計算量を減らす。
friend Matrix operator + (const Matrix &m1, const Matrix &m2) { Node *n1 = m1.rows; Node *n2 = m2.rows; Matrix mat(m1.size); while (n1 || n2) { if (n1 && n2) { if(n1->row == n2->row && n1->col == n2->col) { mat.append(n1->data + n2->data, n1->row, n1->col); n1 = n1->nextrow; n2 = n2->nextrow; } else if (lt(n1->row, n1->col, n2->row, n2->col)) { mat.append(n1->data, n1->row, n1->col); n1 = n1->nextrow; } else { mat.append(n2->data, n2->row, n2->col); n2 = n2->nextrow; } } else if (n1) { mat.append(n1->data, n1->row, n1->col); n1 = n1->nextrow; } else { mat.append(n2->data, n2->row, n2->col); n2 = n2->nextrow; } } return mat; }