C++ apmatrix類

2023-03-20 16:51 更新

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

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

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

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

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

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

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

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

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

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

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

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

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

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

公眾號
微信公眾號

編程獅公眾號