您好,登錄后才能下訂單哦!
對稱矩陣:元素以主對角線為對稱軸對應相等的矩陣
對稱矩陣存儲采用上三角、下三角存儲,下三角符合i>=j(行大于等于列),我采用的是下三角存儲,存儲可以存儲下三角的元素,但是打印時還需要將其轉成對稱矩陣形式打印
構造函數:
SymmetricMatrix(T* a,size_t size) :_a(new T[size*(size+1)/2]) ,_size(size*(size+1)/2) ,_n(size) { int index=0; for(size_t i=0;i<size;i++) { for(size_t j=0;j<size;j++) { if(i>=j) { _a[index++]=a[i*size+j]; } else break; } } }
打印矩陣
void Display() { for(size_t i=0;i<_n;i++) { for(size_t j=0;j<_n;j++) { if(i>=j) { cout<<_a[i*(i+1)/2+j]<<" "; } else { cout<<_a[j*(j+1)/2+i]<<" "; } } cout<<endl; } cout<<endl; }
元素的訪問
T& Access(size_t i,size_t j) { if(i<j) { swap(i,j); } return _a[i*(i+1)/2+j]; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。