C++中 vector


二維向量的輸入問題: 

不像二維數組那樣,可以直接對 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;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章