利用vector定義矩陣


熟悉c風格的矩陣定義,那么用純c++特性vector如何定義一個矩陣呢?

 1 # include<vector>
 2 # include <iostream>
 3 int main()
 4 {
 5     using namespace std;
 6     vector<vector<int>> array(3);
 7     const int COL = 4;
 8     for ( int i=0; i < 3; i++)
 9     {
10         array[i].resize(COL);
11     }
12     array[2][3] = 5;
13     cout << "array[3][3]:" << array[2][3] << endl;
14     cout << "array的行數" << array.size() << endl;
15     cout << "array的列數" << array[0].size() << endl;
16     system("pause");
17     return 0;
18 
19 }

上述代碼定義了3行4列的矩陣,主要是正確理解vector<vector<int>>array(3),我們應該如何理解?

回到vector的構造函數,array(3)表示使得向量array保留3個元素。即本質上,array是一個向量,這個向量的大小為3,;而這個向量的每個元素是vector<int>,即這個向量的每個元素是向量。當然每個元素的大小在第六行並未定義,可見array的本質是向量,並不是矩陣,並沒有矩陣這個概念,矩陣只是向量的每個子元素也是向量,且恰巧這些子元素的長度也一致而已,僅此而已。

以及對array.size()和array[0].size()的理解。知道了對array的定義,自然我們就知道了array.size()表示的是向量array的長度,array[0].size()為其元素的長度。也就是本質上,我們應該只有向量的概念。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM