用户定义大小的C ++ STL中的2D向量

C ++ STL中的2D矢量

在C ++ STL中,二维向量是向量的向量。

声明2D向量的语法:

    vector<vector<T>> vector_name{ {elements}, {elements}, ...};

1)使用C ++ STL代码声明和打印2D向量(具有相同数量的元素)

//使用C ++ STL代码声明和打印2D矢量
#include <iostream>
#include <vector> //对于矢量
using namespace std;

int main(){
    //初始化2D向量“ v1”"v1" with
    //相同数量的矢量元素
    vector<vector<int> > v1{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

    //打印2D向量的元素
    for (int i = 0; i < v1.size(); i++) {
        for (int j = 0; j < v1[i].size(); j++)
            cout << v1[i][j] << " ";
        cout << endl;
    }

    return 0;
}

输出结果

1 2 3
4 5 6
7 8 9

2)C ++ STL代码来声明和打印2D向量(具有不同数量的元素)

//使用C ++ STL代码声明和打印2D矢量
#include <iostream>
#include <vector> //对于矢量
using namespace std;

int main(){
    //初始化2D向量“ v1”"v1" with
    //不同数量的矢量元素
    vector<vector<int> > v1{ { 1, 2, 3 }, { 4, 5 }, { 6, 7, 8, 9 } };

    //打印2D向量的元素
    for (int i = 0; i < v1.size(); i++) {
        for (int j = 0; j < v1[i].size(); j++)
            cout << v1[i][j] << " ";
        cout << endl;
    }

    return 0;
}

输出结果

1 2 3
4 5
6 7 8 9

3)使用C ++ STL代码声明和打印2D向量(用户输入的行数,列数和元素数)

//使用C ++ STL代码声明和打印2D矢量
#include <iostream>
#include <vector> //对于矢量
using namespace std;

int main(){
    int row;
    int col;

    // Input rows & columns
    cout << "Enter number of rows: ";
    cin >> row;
    cout << "Enter number of columns: ";
    cin >> col;

    //声明2D向量“ v1”"v1" with
    //给定的行数和列数
    //并用0初始化
    vector<vector<int> > v1(row, vector<int>(col, 0));

    //输入向量的元素
    for (int i = 0; i < v1.size(); i++) {
        for (int j = 0; j < v1[i].size(); j++) {
            cout << "Enter element: ";
            cin >> v1[i][j];
        }
    }

    //打印2D向量的元素
    cout << "2D vector elements..." << endl;
    for (int i = 0; i < v1.size(); i++) {
        for (int j = 0; j < v1[i].size(); j++)
            cout << v1[i][j] << " ";
        cout << endl;
    }
    return 0;
}

输出结果

Enter number of rows: 3
Enter number of columns: 4
Enter element: 1
Enter element: 2
Enter element: 3
Enter element: 4
Enter element: 5
Enter element: 6
Enter element: 7
Enter element: 8
Enter element: 9
Enter element: 10
Enter element: 11
Enter element: 12
2D vector elements...
1 2 3 4
5 6 7 8
9 10 11 12