C++ apmatrix類

2023-03-20 16:51 更新

apmatrix是二維的,除此之外它與apvector很像。不同于向量的長度,apmatrix有兩個維度,稱為numrows和numcols,分別表示“行數(shù)”和“列數(shù)”。

矩陣中的每個元素用兩個索引來識別,其中一個是行編號,另一個是列編號。

要創(chuàng)建一個矩陣,有四種可選的構(gòu)造函數(shù):

apmatrix<char> m1;
apmatrix<int> m2 (3, 4);
apmatrix<double> m3 (rows, cols, 0.0);
apmatrix<double> m4 (m3);

第一個構(gòu)造函數(shù)什么都沒做,它創(chuàng)建的矩陣行數(shù)和列數(shù)都是0。第二個有兩個整型數(shù)類型的參數(shù),依次是行數(shù)和列數(shù)的初始值。第三個構(gòu)造函數(shù)添加了一個參數(shù)用于初始化矩陣的元素,其余與第二個相同。第四個是復(fù)制構(gòu)造函數(shù),它以另一個apmatrix對象為參數(shù)。

就像apvectors一樣,我們可以創(chuàng)建任何類型的apmatrix對象 (包括apvector,甚至apmatrix等類型)。

要訪問矩陣的元素,我們使用[]操作符來指定行和列的信息:

m2[0][0] = 1;
m3[1][2] = 10.0 * m2[0][0];

如果我們想嘗試訪問范圍之外的元素,程序會打印錯誤信息并退出。

numrows和numcols兩個函數(shù)分別獲取矩陣的行數(shù)和列數(shù)。記住,行索引是0到numrows() -1之間的數(shù),而列索引是0和numcols() -1之間的數(shù)。

常用嵌套循環(huán)來遍歷矩陣。下面循環(huán)將矩陣中每個元素的值設(shè)置為其行索引和列索引的和:

for (int row=0; row < m2.numrows(); row++) {
  for (int col=0; col < m2.numcols(); col++) {
    m2[row][col] = row + col;
  }
}

循環(huán)打印時,矩陣每一行的元素使用制表符分隔,列之間以換行符分隔:

for (int row=0; row < m2.numrows(); row++) {
  for (int col=0; col < m2.numcols(); col++) {
    cout << m2[row][col] << "\t";
  }
  cout << endl;
} 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號