vector輸入與二維使用
阿新 • • 發佈:2019-01-23
轉載連結:http://blog.csdn.net/u013068755/article/details/70198924
二維向量的輸入問題:
不像二維陣列那樣,可以直接對arr[i][j]
進行迴圈賦值。在vector<vector<int>>
中,因為vector是一個容器,最外層的vector容器中放著更小的vector,而裡層的vector裡面放的是int型的數字。所以我們首先要對裡層的vector容器賦值,然後再把裡層的vector作為元素插入到外層的vector中。程式碼如下:
#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(); //每次記得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;
}