二維向量的輸入問題:
不像二維數組那樣,可以直接對 arr[i][j] 進行行循環賦值。在vector<vector<int>>中,因爲vector是一個容器,最外層的vector容器中放着更小的vector,而裏層的vector裏面放的是int型的數字。所以我們首先要對裏層的vector容器賦值,然後再把裏層的vector作爲元素插入到外層的vector中。
行列的表示:
e.g.: vector<vector<int>> array; 則 行 row=array.size( ); 列 col=array[0].size( );
代碼:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector<int>> test;
vector<int> v;
int n,temp;
cin >> n;
test.clear();
//輸入
for (int i = 0; i<n; i++) {
v.clear();
for (int j = 0; j < n; j++)
{
cin >> temp;
v.push_back(temp);
}
test.push_back(v);
}
//輸出
for(int i = 0; i < n; i++)
{
for(int j = 0;j < n; j++)
{
cout << test[i][j] << " ";
}
cout << endl;
}
return 0;
}